java.lang.NullPointerException异常问题解决方案

java.lang.NullPointerException异常原因是因为创建了一个引用类型的变量却没有指向任何对象而又去通过这个引用类型变量加点的形式去访问非静态的方法及属性。
给出三种情况,
第一种情况,在启动类中定义了引用类型变量,赋值为空:

/**
    *  引用类型变量没有指向对象所引起的空指针异常
 * @author Superhero
 * @version 2018年12月16日上午10:32:43
 */
 //图书类
class Books
{
 private String name;
 private String author;
 private double price;

 public Books()
 {

 }

 public Books(String name, String author, double price)
 {
  this.name = name;
  this.author = author;
  this.price = price;
 }

 public String getName()
 {
  return name;
 }

 public String getAuthor()
 {
  return author;
 }

 public double getPrice()
 {
  return price;
 }
}
//启动类
public class NullPointerExceptionTest1
{
 public static void main(String[] args)
 {
  Books book=null;
  //下面一行代码会报指针异常错误:
    System.out.println("name:"+book.getName()+", author:"+book.getAuthor()+",    price:"+book.getPrice());
 }
}

第二种情况:创建了一个引用类型的数组,却没有给数组元素指向对象而调用了。

public class NullPointerExceptionTest2
{
 public static void main(String[] args)
 {
  Books[] books = new Books[3];
  books[0] = new Books("NullPointerException","Superhero",88.8);
    //books[1],book[2]没有指向对象,所以也报空指针异常
  for(Books book : books)
   System.out.println("name:"+book.getName()+", author:"+book.getAuthor()+", price:"+book.getPrice());
 }
}

第三种情况是在类中定义了引用类型属性,却没有指向对象而调用了非静态的方法或属性,和第一种情况类似,这里就不给代码了。

到此这篇关于java.lang.NullPointerException异常问题解决方案的文章就介绍到这了,更多相关java.lang.NullPointerException异常内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Hadoop运行时遇到java.io.FileNotFoundException错误的解决方法

    报错信息: java.lang.Exception: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in localfetcher#1 at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462) at org.apache.hadoop.mapred.LocalJobRunner$Jo

  • Java中Exception和Error的区别详解

    世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中.随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确的处理好意外情况,才能保证程序的可靠性. java语言在设计之初就提供了相对完善的异常处理机制,这也是java得以大行其道的原因之一,因为这种机制大大降低了编写和维护可靠程序的门槛.如今,异常处理机制已经成为现代编程语言的标配. 今天我要问你的问题是,请对比Exception和Error,另外,运行时异常与一般异常有什么区别? 典型回答 Exception和Error都

  • Java异常 Factory method'sqlSessionFactory'rew exception;ested exception is java.lang.NoSuchMethodError:

    springboot 引入mybatis-plus后报错: Factory method 'sqlSessionFactory' threw exception; nested exception is java.lang.NoSuchMethodError: com.baomidou.mybatisplus.entity.GlobalConfiguration.getWorkerId()Ljava/lang/Long; org.apache.ibatis.binding.BindingExce

  • java.lang.NumberFormatException异常解决方案详解

    前言:        在做后台时用的jsp开发,在页面向controller传参时用String接收的参数,但是数据库实体中jies接收该参数时是int类型,做了一下强制转换,但是没有判断去空格,结果页面加载时就报500错误了. 错误截图: 在报错后注意分析报错信息,如上图提示在ShopController.java 的92行出错了,那么错误就很容易定位了,去看那里的代码. 错误关键字 java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常,接着后面有

  • Java异常处理操作 Throwable、Exception、Error

    异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程. Java通过API中Throwable类的众多子类描述各种不同的异常.因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件.当条件生成时,错误将引发异常. Throwable 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出).Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性. Throwable 有两个重要的子类:Excep

  • 解决java.net.SocketTimeoutException: Read timed out的问题

    java.net.SocketTimeoutException: Read timed out 产生问题的环境:ssm+mysql+gridFS+tomcat 问题代码段: public void write(OutputStream os, InputStream is) { try (BufferedOutputStream bos = new BufferedOutputStream(os); BufferedInputStream bis = new BufferedInputStrea

  • SpringBoot异常: nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext解决方案

    今天在使用SpringBoot创建了一个项目出现如下异常 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'documentationPluginsBootstrapper': Resolution of declared constructors on bean Class [springfox.documentation.spring.web.plugins.Docu

  • Java ClassCastException异常解决方案

    ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常.此类错误通常会终止用户请求.在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常.通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理.对基础类型和用户定义类型都可以转换.Java语言规范定义了允许的转换,其中大多数可在编译时进行验证.不过,某些转换还需要运行时验证.如果在此运行时验证过程中检测到不兼容,JVM就会引发ClassCastException异常

  • java.lang.NullPointerException异常问题解决方案

    java.lang.NullPointerException异常原因是因为创建了一个引用类型的变量却没有指向任何对象而又去通过这个引用类型变量加点的形式去访问非静态的方法及属性. 给出三种情况, 第一种情况,在启动类中定义了引用类型变量,赋值为空: /** * 引用类型变量没有指向对象所引起的空指针异常 * @author Superhero * @version 2018年12月16日上午10:32:43 */ //图书类 class Books { private String name;

  • java.lang.ArrayStoreException异常的解决方案

    java.lang.ArrayStoreException异常 异常提示 java.lang.ArrayStoreException: java.lang.Boolean at java.util.stream.Nodes$FixedNodeBuilder.accept(Nodes.java:1222) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliter

  • java.lang.NullPointerException出现的几种原因及解决方案

    java.lang.NullPointerException出现的几种原因: 1.字符串变量未初始化 2.接口类型的对象没有用具体的类初始化,比如: Map map // 会报错 Map map = new Map(); //则不会报错了 3.当一个对象的值为空时,你没有判断为空的情况. 4.字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常 String str = null; if(str.equals("Test")){ //这里的代码将不会被触发,因为会抛

  • 解决java.lang.NullPointerException报错以及分析出现的几种原因

    java.lang.NullPointerException出现的几种原因: 1.字符串变量未初始化 2.接口类型的对象没有用具体的类初始化,比如: Map map // 会报错 Map map = new Map(); //则不会报错了 3.当一个对象的值为空时,你没有判断为空的情况. 4.字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常 String str = null; if(str.equals("Test")){ //这里的代码将不会被触发,因为会抛

  • 详解Java中NullPointerException异常的原因详解以及解决方法

    NullPointerException是当您尝试使用指向内存中空位置的引用(null)时发生的异常,就好像它引用了一个对象一样. 当我们声明引用变量(即对象)时,实际上是在创建指向对象的指针.考虑以下代码,您可以在其中声明基本类型的整型变量x: int x; x = 10; 在此示例中,变量x是一个整型变量,Java将为您初始化为0.当您在第二行中将其分配给10时,值10将被写入x指向的内存中. 但是,当您尝试声明引用类型时会发生不同的事情.请使用以下代码: Integer num; num

  • java.lang.ExceptionInInitializerError异常的解决方法

    今天在开发的过程中,遇到java.lang.ExceptionInInitializerError异常,百度查了一下,顺便学习学习,做个笔记 静态初始化程序中发生意外异常的信号,抛出ExceptionInInitializerError表明在计算静态初始值或静态变量的初始值期间发生异常. 要理解这个异常从Java类中的静态变量初始化过程说起,在Java类中静态变量的初始化顺序和静态变量的声明顺序是一致的.示例程序为: package com.lang.ininitialException; im

  • Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException

    Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException解决办法: 利用Java操作XML,在操作XML过程中,执行到最后一步,在利用Transformer进行XML转换时出现NullPointerException错误,出问题的部分代码如下: //转换 TransformerFactory tFactory =TransformerFactory.newInstance(); Tr

  • Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法

    当然这个东西很吃内存,配置差点的就不推荐使用了. 最近用的时候, 发现, 建立PHP工程后,再打开 Zend Studio for Eclipse就出现这个错误 An internal error occurred during: "Building PHP projects ..."java.lang.NullPointerException 很烦人的. 出错后PHP projects 会停止build,代码提示就全部没有了.需要手动rebuild. 今天在zend论坛找到一个解决办

  • Java java.lang.InstantiationException异常案例详解

      java.lang.InstantiationException 是指不能实例化某个对象,一般在我们使用java反射机制去创建某个对象的时候实例化到了一个抽象类或者接口(java中抽象类和接口是不能被实例化),而今天我遇到的则是我在使用反射机制实例化某个持久类的时候爆出这个异常,后来发现是因为iBATIS在对象建立中,会使用不带参数的构造函数来建立对象,而自己的持久化类中含有带参数的构造方法,将默认无参构造方法覆盖,导致在实例化过程出现异常.所以在定义一个无参构造方法可解决. 异常 持久类没

随机推荐