Я пишу короткую Java-программу, которая должна взять список из 5 целых чисел и назначить каждому из 6 членов. Я хочу максимизировать количество членов, которые получают значение между их значениями min
и max
.
В любом случае, по какой-то причине это неизвестно мне, мой частный класс member
, похоже, бросает исключение NullPointerException, но я совершенно не понимаю, почему. Мы ценим любые предложения.Java Inner Classes NullPointerException
import java.util.*;
public class assign {
private class member {
private String name;
private int min;
private int max;
public member(String name, int min, int max) {
this.name = name;
this.min = min;
this.max = max;
}
}
public member[] members = {
new member("Phil", 1, 20),
new member("Molly", 1, 20),
new member("Connor", 21, 40),
new member("Sam", 21, 40),
new member("Dan", 41, 60),
new member("Theresa", 41, 60)
};
public void main(String[] args) {
System.out.println("test");
String s = StdIn.readLine();
String[] temp = s.split(" ");
ArrayList<Integer> nums = new ArrayList<Integer>(5);
for (int i = 0; i < 5; i++) {
nums.add(Integer.parseInt(temp[i]));
}
ArrayList<member> mems = new ArrayList<member>(Arrays.asList(members));
for (int n : nums) {
for (member m : mems) {
if (n > m.min && n < m.max) {
System.out.println(m.name + " : " + n);
nums.remove(n);
mems.remove(m);
}
}
}
for (int n : nums) {
member m = mems.remove(0);
System.out.println(m.name + " : " + n);
}
}
}
Из комментария OP в:
java.lang.NullPointerException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
Вы должны действительно вернуться и прочитать FAQ. Если вам нужна помощь с кодом, который вы написали, вам нужно опубликовать, при каких условиях, что вы ожидаете на самом деле, какие-либо трассировки стека и т. Д. –
Вам нужно указать, какая линия выбрасывает NPE. –
java.lang.NullPointerException \t на sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод) \t в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) \t в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 25) \t at java.lang.reflect.Method.invoke (Method.java:597) \t at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand (JavacCompiler.java:272) –