我的班级不断收到空指针异常。
客户端类:
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int count = 0;
for (int i = 0; i < 100; i++){
count ++;
System.out.println(i);
Clip[] newClip = new Clip[100];
newClip[i] = new Clip();
menu();
int option = kb.nextInt();
switch(option){
case 1: System.exit(0);
break;
case 2: newClip[i].Input();
newClip[i].Output();
break;
case 3: int indexclip = 0;
int testclip = 0;
Scanner key = new Scanner(System.in);
System.out.println("Enter the index number of the clip: ");
testclip = key.nextInt();
for (int j = 0; j < 100; j++){
indexclip = newClip[j].getIndex(); // happens here
System.out.println(indexclip);
if(testclip == indexclip){
j = 120;
newClip[j].Output(); // and i would assume here too
}
}
break;
}
}
}
剪辑类:
import java.util.*;
public class Clip {
private int index;
private String surname;
private float length;
private float speed;
private String time = "testing";
public Clip(){
index = 0;
surname = "N/A";
length = (float) 0.00;
speed = (float) 0.00;
time = "0:00AM";
}
public void Output(){
System.out.println("Index: "+ index);
System.out.println("Surname: " + surname);
System.out.println("Length: " + length);
System.out.println("Speed: "+ speed + "m/s");
System.out.println("Time: "+ time);
}
public void Input(){
int testint;
float testfloat;
int spacePos;
String testString;
Scanner kb = new Scanner(System.in);
Scanner key = new Scanner(System.in);
System.out.println("Input an index number between 1 - 10000: ");
testint = kb.nextInt();
for (int i = 0; i < 100; i++){
if (testint < 1 || testint > 10000){
System.out.println("Input an index number between 1 - 10000: ");
testint = kb.nextInt();
}
else {
i = 120;
}
}
index = testint;
System.out.println("What is the competitor's Surname and their Given name: ");
surname = key.nextLine();
System.out.println("Length of the Tape in seconds: ");
testfloat = kb.nextFloat();
for (int i = 0; i < 100; i++){
if (testfloat < 1 || testfloat > 60){
System.out.println("Length of the Tape in seconds: ");
testfloat = kb.nextFloat();
}
else {
i = 120;
}
}
length = testfloat;
System.out.println("Estimated Speed of competitor in metres per second: ");
testfloat = kb.nextFloat();
for (int i = 0; i < 100; i++){
if (testfloat < 7 && testfloat > 13){
System.out.println("Estimated Speed of competitor in metres per second: ");
testfloat = kb.nextInt();
}
else {
i = 120;
}
}
speed = testfloat;
System.out.println("Time of recording between 0900 - 1700: ");
testString = key.nextLine();
for (int i = 0; i < 100; i++){
if (testString.length() != 4){
System.out.println("Time of recording between 09:00 - 17:00: ");
testString = key.nextLine();
}
else {
i = 120;
}
}
time = testString;
}
public int getIndex(){
return index;
}
public String getSurname(){
return surname;
}
public float getLength(){
return length;
}
public float getSpeed(){
return speed;
}
public String getTime(){
return time;
}
我知道必须初始化 Clip 类,并且我已经这样做了,并且我首先运行选项 2,以便不使用其他类的构造函数。我只想让它读入索引号并扫描剪辑数组以查找匹配的索引号
任何帮助都会有很大帮助
干杯