问题描述
解决方案
我依稀看到你是这样写的:
User[] user = new User[10];
实际上,在这句之后要加上:
for (int i=0;i<10;i++)
user[i] = new User();
不然的话,user[i]都会是null,所以,你下面的user[j].username会直接报空指针。
这个是java中数组对象的性质
解决方案二:
图太小,看不清你的代码。检查下你是不是有对象为null
解决方案三:
图是真的看不了,建议打log 调试。
解决方案四:
明显是对象为NULL吧,,
解决方案五:
import java.util.*;
class Demo11
{
public static void main(String[] args)
{
System.out.println("欢迎你来到月球!");
Scanner sc=new Scanner(System.in);
User[] user=new User[10];
int i=0;
while(true){
System.out.println("请选择功能: 注册(a) 查看用户(b)");
String s=sc.next();
if (s.equals("a")){
System.out.println("请输入用户名:");
String username=sc.next();
System.out.println("请输入密码:");
String password=sc.next();
for (int j=0;j<i+1 ;j++ )
{
user[i++]=new User(username,password);
}
}else if (s.equals("b")){
for (int j=0;j<i+1 ;j++ ){
System.out.println("当前用户为:");
System.out.println("用户名:"+user[j].username+"密码:"+user[j].password);
}
}else{
System.out.println("你的输入有误,系统退出!");
break;
}
}
}
}
class User
{
String username;
String password;
User(String username,String password){
this.username=username;
this.password=password;
}
}
改成这样,报错是索引值越界- -!!