Java中使用数组报错:Exception in thread "main" java.lang.NullPointerException

  • 今天在用JAVA写栈的时候报了这样一个错误,出错源码部分如下:
private int maxSize;
	private char[] array= new char[5];
	private int top;
	
	public Stacks(int size)
	{
		this.maxSize = size;
		top = -1;
	}
	
	public void Push(char ele)
	{
		if(top<maxSize-1)
			array[++top] = ele;    //此为报错行
	}

其实就是很简单的一个入栈操作,调试时ele的值也是正确的(报错提示在this.maxSize行),但array始终显示为null。上网查了查博客,看到一篇关于JAVA类数组中报出同样的错误,原题主认为类数组中的每一个元素为一个对象,应该申请存储空间。于是直接将一个确定的数组传给该空数组,或在声明时进行初始化即可解决。

  • 大概的搜了一下看到一篇关于报错空指针的几种情况及解决办法(https://blog.csdn.net/qq_35733535/article/details/69211201 ):

主要原因如下: 
(1)当一个对象不存在时又调用其方法会产生异常obj.method() // obj对象不存在 
(2)当访问或修改一个对象不存在的字段时会产生异常obj.method() // method方法不存在 
(3)字符串变量未初始化; 
(4)  接口类型的对象没有用具体的类初始化

猜你喜欢

转载自blog.csdn.net/qq_42330000/article/details/86566878