有人可以幫助我嗎?我是java編程新手,我是否陷入了一個bug很長一段時間這是錯誤消息:java.lang.ExceptionInInitializerError引起原因:java.lang.RuntimeException:無法編譯的源代碼 - 需要標識符at pkg18148600a_assignment1.Main.<clinit>(Main.java:12)線程“main”Java 結果中出現異常:1這是我的代碼 public static void main(String[] args) { Member member[] = new Member[6]; int sequence[] = {0,1,2,3,4,5}; int temp; for (int i = 0; i < args.length; i++){ if (i % 2 == 0){ member[i] = new Member(args[i], Integer.valueOf(args[i+1])); } } int k = 0; boolean swap; do{ swap = false; if (member[k % 7].compareTo(member[(k+1) % 7]) > 0){ temp = sequence[k % 7]; sequence[k % 7] = sequence[(k+1) % 7]; sequence[(k+1) % 7] = temp; swap = true; } k++; } while(swap); for (int i = 0; i < args.length; i++) System.out.printf("%s, %d\n", member[i].getName(), member[i].getAge());}public static class Member implements Comparable<Member> { private String name; private int age; public Member(String name, int age){ this.name = name; this.age = age; } public Member(){ } public String getName(){ return name; } public int getAge(){ return age; } @Override public int compareTo(Member a) { if (age == a.age){ return 0; }else if (age > a.age){ return 1; }else return -1; }}
1 回答

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊
你在下面的行中得到 NullPointerException
member[k % 7].compareTo(member[(k+1) % 7]
因為你剛剛在這里新建了偶數索引
for (int i = 0; i < args.length; i++){ if (i % 2 == 0){ member[i] = new Member(args[i], Integer.valueOf(args[i+1])); } }
你必須刪除 if 語句或其他與你的邏輯相關的東西
和其他事情 Integer.valueOf(args[i+1]) 導致 ArrayIndexOutOfBoundsException。數組從 0 索引開始
添加回答
舉報
0/150
提交
取消