您当前位置:手机评站网 > 手机教程 >

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:调用 null 对象的实例方法。访问或修改 null 对象的字段。将 null 作为一个数组,获得其长度。将 null 作为一个数组,访问或修改其时间片。将 null 作为 Throwable 值抛出。应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。

nullpointexception相关话题

NullpointException异常

NullpointException异常

你这个是运行时异常,所以编译当然没问题。看了一下,你直接返回 return multipliers[x][y];,我想问的是,你对multipliers[][]数组初始化了吗?我看了你的代码,我没有发现你有初始化multipliters[][]的地方啊,如果你不初始化multipliters,调用时如果用到multipliters,就会抛出空引用异常。从里的异常信息里可以知道你在main函数里用到了getMultiplier()函数,而multipliters没有初始化,所以会抛出异常。我是这么猜的哦,因为看不了你全部代码,不知道你有没有初始化。还有,你这里title[][]数组也没有出始化,但异常信息没有显示,只有两种可能,一是你在main函数里没有使用到title[][],二是你用到title[][]的语句调用在getMultiplier()之后,因为在还没有执行到调用title[][]的语句之前就已经抛出异常,所以程序没有执行到title[][],也就没有抛出title[][]的空引用异常。我猜是第二种,不调用title[][]你写来干嘛 ,呵呵。只是我的一面之词,希望对你有帮助! 你初始化要指定每个维数的大小啊,你应该这样写: Multiplier[][] multiplier = new Multiplier[boardSize][boardSize];Title[][] title=new Title[boardSize][boardSize];

java.lang.NullPointerException是什么错误

java.lang.NullPointerException是java常见的异常, 中文常常翻译为 空指针异常.

触发条件: 当一个对象为空(null)时,  试图调用对象的方法, 或者访问或者修改对象的属性时 ,就会抛出空指针异常. 

解决该异常的办法: 

  1. 尽量避免使用为空的对象,

  2. 或者先判断是否为null 然后再使用,

  3. 或者使用try catch 捕获到该异常后处理这个异常. 

参考代码

错误示范

public class Demo {	public static void main(String[] args) {		String str = null;		if(str.equals("ABC")) { //str为空,调用str的equals方法, 就会报错			System.out.println("字符串的内容是ABC");		}else {			System.out.println("字符串的内容不是ABC");		}	}}

解决示范1

public class Demo {	public static void main(String[] args) {		String str = null;		if("ABC".equals(str)) { //使用"ABC"这个不为null的对象,调用他的equals方法			System.out.println("字符串的内容是ABC");		}else {			System.out.println("字符串的内容不是ABC");		}	}}

示范2: 先判断是否为空, 不为空, 才调用方法和访问属性

public class Demo {	static String str1;	public static void main(String[] args) {		if(str1!=null) {//先判断它不为空,才调用 它的length方法			System.out.println(str1.length());		}else {			System.out.println("str1对象为空");		}	}}

示范3

import java.util.Scanner;public class Demo {	static String str1;	public static void main(String[] args) {		try {			System.out.println(str1.length());		}catch(NullPointerException e) {			System.out.println("str1为空...请赋值..");			Scanner sc  = new Scanner(System.in);			str1 = sc.nextLine();			System.out.println("str1的长度为:"+str1.length());		}	}}//str1为空...请赋值..//ABC//str1的长度为:3

为什么会报NullPointerException

java.lang.NullPointerException怎么解决

根据报错提示,(root cause下信息)可以发现是createStatement();这个函数返回值为空。初步判定为传入参数conn是一个错误的,监测一下conn是否成功创建并打开。

追问

追答

 public static void Init()	{	try {//	  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//      conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=MessageBoard", "sa", "123456");//这是sqlserver  可以不看//下面是mysql 		Class.forName("com.mysql.jdbc.Driver"); //第二步,获得数据库的地址,用户名,密码 		String url="jdbc:mysql://localhost:3306/messageboard?characterEncoding=utf8&useSSL=true"; 		String user="root"; 		String password="123456"; 		//第三步,获得地址,用户名,密码后,给我一个与该数据库的连接 		conn= DriverManager.getConnection(url,user,password); 		//第四步,获得连接实例connection的目的是对数据库进行操作,这就要用到Statement                System.out.println("success!");		statement = conn.createStatement();		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}

你可以参考一下,我看你的msql端口号不是3306,是不是改了?建议输出一些信息,进行判断,看看是不是达到了自己的需求。

追问

这些我都测试

过了,连接都是对的。

追答

mysql的jar包是不是对的?有时候这个问题也会导致问题。你在创建得过程每一个关键代码后面输出写信息,在控制台查看输出信息,看输出到哪一步,看从哪开始出错的。同时把异常信息给打印出来。

更多追问

出现java.lang.NullPointerException异常怎么解决

  • java.lang.NullPointerException异常

  • 报空指针,找不到  lang 包你定义的对象

  • 看错误的行数, 应该是没接收到参数

    代码错误:500 java.lang.NullPointerException

    我也不知道哪里出了问题,老是说我是空指针错误,调试的话会出现没有源代码的页面.希望大佬给与解决.....谢谢了

    &xe671;

  • &xe673;

    代码出错在19行,空指针错误可以检查一下是不是哪个对象是空的

    追问

    看了一下是空的。但是问题不知道出在哪里

    但是不知道为什么不对

    追答

    这个,这点代码我也看不出问题,会不会是您没有查出来结果,但是您是这样写的

    Employee e = new Employee();e = XX  //(查询方法)return e;

    这样返回的对象应该属性都是空的

    追问

    我找到了。原来是操作数据库的时候出了问题

    谢谢了

    更多追问

    如何查找java.lang.NullPointerException的原因

    可能的原因:实例化的类的对象没有使用new在new对象之前就使用对象

    变量值没有申明就调用

    查找方法:看控制台报错的行数!!!!有显示是第几行的问题。

    class A{    int i;}以下情况会发生空指针异常------------class B{    public static void main (String[] args)    {        A hello;        hello.i = 0;//空指针!    }}----------class B{    public static void main (String[] args)    {        hello.i = 0;//空指针!        A hello = new A ();    }}------------class B{    public static void main (String[] args)    {        A hello [] = new A[5];//定义类数组        hello.i = 0;//空指针!    }}正确的调用方法class B{    public static void main (String[] args)    {        A hello = new A ();        hello.i = 0;//正确!    }}-----------class B{    public static void main (String[] args)    {        A hello []= new A [5];//注意这里其实并没有构造5个新对象,而是构造了5个对象指针。        for(int a = 0; a < 5; a++)        {             hello[a] = new A();//直到构造函数被调用,对象才算被实例化。        }        hello.i = 0;//正确!    }}

    关于Java中的java.lang.NullPointerException问题。

    package student_system_new;public class Student { public Student() { this.studentID = 0; this.Name = ""; Math = 0.0; Chinese = 0.0; English = 0.0; } public Student(int studentID, String name, double math, double chinese, double english) { this.studentID = studentID; this.Name = name; Math = math; Chinese = chinese; English = english; } private int studentID; private String Name; private double Math; private double Chinese; private double English; public void setName(String name) { Name = name; } public void setStudentID(int ID) { studentID = ID; } public void setMath(double math) { Math = math; } public void setChinese(double chinese) { Chinese = chinese; } public void setEnglish(double english) { English = english; }}package student_system_new;import java.util.*;public class Classes { public Classes() { super(); } final static int SIZE = 5; private Student[] class1 = new Student[SIZE]; public void setData() { System.out.println("输入学生数据:学号、姓名、数学、语文、英语"); Scanner data = new Scanner(System.in); for(Student a: class1) { a.setStudentID(data.nextInt()); a.setName(data.next()); a.setMath(data.nextDouble()); a.setChinese(data.nextDouble()); a.setEnglish(data.nextDouble()); } data.close(); }}package student_system_new;public class Texter { public static void main(String[] args) { // TODO Auto-generated method stub Classes first = new Classes(); first.setData(); }}有三个类。我测试setData目的是想输入五个学生数据,可是输入的时候出现了如下图这样的错误,好像是使用了一个空指针,是不是数组这里有问题?该怎么改呢?

    展开

    &xe671;

  • &xe673;

    private Student[] class1 = new Student[SIZE];创建了数组。。。。。。。。。。。for(Student a: class1) {a.setStudentID(data.nextInt());而数组中的各个元素是Student类、并未初始化。。。。。。for(Student a: class1) {a=new Student();a.setStudentID(data.nextInt());

    java.lang.NullPointerException是什么错误

    java.lang.NullPointerException是什么错误

来源: 手机评站

热门手机排行榜

  1. 1Redmi K20¥1999
  2. 2vivo Z5x¥1398
  3. 4realme X¥1499
  4. 5vivo X27¥3598
  5. 6一加 6¥3199
  6. 9荣耀 Magic2¥3799
  7. 10三星 Note9¥6999

Copyright © 2016-2019 手机评站网(www.pingzhan.net)版权所有

业务联系: