2 ehomewetrust ehomewetrust 于 2016.02.01 23:30 提问

理解不能的java空指针异常求教

一个用户时可以打印,多了就不行。求教。图片图片

5个回答

leilba
leilba   Rxr 2016.02.02 10:24
已采纳

我依稀看到你是这样写的:
User[] user = new User[10];

实际上,在这句之后要加上:
for (int i=0;i<10;i++)
user[i] = new User();

不然的话,user[i]都会是null,所以,你下面的user[j].username会直接报空指针。
这个是java中数组对象的性质

ehomewetrust
ehomewetrust 谢谢谢谢。。
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.01 23:35

图太小,看不清你的代码。检查下你是不是有对象为null

caozhy
caozhy 回复ehomewetrust: 解决了就好,当然,如果能采纳下我的回答更好!
2 年多之前 回复
ehomewetrust
ehomewetrust 嗯嗯,很抱歉。。谢谢您!!!现在已经解决了,再谢!
2 年多之前 回复
caozhy
caozhy 回复ehomewetrust: 用你的电脑传代码而不是发一个图,这个图你自己看看,什么都没有
2 年多之前 回复
caozhy
caozhy 回复ehomewetrust: 用你的电脑传代码而不是发一个图,这个图你自己看看,什么都没有
2 年多之前 回复
ehomewetrust
ehomewetrust 怎么编辑问题,重新传一下图片,手机没源码。说不清楚。。用的for,索引值是从0开始的i++。。下面打印是for。判定条件是次数小于i。。打印一个用户就没问题,多个就不行,且每次都只打印最后一次输入的,仿佛前面的被覆盖。没有保存下来
2 年多之前 回复
rui888
rui888   Ds   Rxr 2016.02.02 09:05

图是真的看不了,建议打log 调试。

Royal_lr
Royal_lr   Ds   Rxr 2016.02.02 09:49

明显是对象为NULL吧,,

ehomewetrust
ehomewetrust   2016.02.04 20:33

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;
}

}

改成这样,报错是索引值越界- -!!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java 空指针异常(NullPointerException)
java 空指针异常(NullPointerException) java 空指针异常(NullPointerException)
C#写COM组件
求教求教求教求教求教求教求教
java 中的空指针,不为空,的理解
一、null是代表不确定的对象   Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。   比如:int a = null;是错误的。Ojbect o = null是正确的。   Java中,变量的适用都遵循一个原则,先定义,并且初始化后,才可以使用。我们不能int a后,不给a指定值,就去打印a的值。这
用Java的DOM读取XML文档时遇到空指针异常...
用Java的DOM读取XML文档时遇到了空指针异常
getServletContext()空指针异常的原因
getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因getServletContext()空指针异常的原因
Java中如何处理空指针异常
英文原文地址:http://examples.javacodegeeks.com/java-basics/exceptions/java-lang-nullpointerexception-how-to-handle-null-pointer-exception/?utm_source=tuicool      在Java语言在,null被分配给一个对象的引用以表示对象指向未知数据块。当应用程序使
打印空引用不会报空指针异常的原因
打印空引用不会报空指针异常的原因 首先大家都知道,在打印一个引用的时候,如果Object的toString()没有重写的情况下,最终会调用toString(),那问题来了,空引用调用toString()不应该报错吗??
java类数组空指针异常
Student[] stu = new Student[3]; 错误信息:Exception in thread "main" java.lang.NullPointerException 修改: Student[] stu = new Student[3]; for(int i = 0; i < 3; i++){ stu[i] = new Student(); }
关于java中空指针异常的原因及解决方法
java中空指针异常,是一种很常见很普通的错误,初学的时候可能会感觉很难解决,代码写多了就好啦,下面总结一些java中空指针异常的一些内容。 首先,在开始之前,还是想说,对于一门编程语言,你要了解它的一些知识,不是仅仅会编程就可以了。所以,在了解空指针异常之前或者之后,还是去看看java中内存的分配的相关内容吧。 指针的概念就不多说了,在面向对象的
线程问题:空指针异常
模拟个场景:    比如当前List里有5个IP,   当你的获取IP那个线程去取到一只有3个IP的list 然后赋值给你的全局List 这时你的List变成了3个,  但是当你刚取完数据库的同时 判断IP是否存在那个for循环刚好循环到第四个,  这时list已经改变为3了 马上就会报空指针错误了,这是经常会发生的事两个线程交差运行,当一个变量被2个线程同时使用的时候,去取值,很容易出问