java使用类数组 报错Exception in thread "main" java.lang.NullPointerException

iAmSoScArEd 2018-10-09 原文

java使用类数组 报错Exception in thread “main” java.lang.NullPointerException

源代码如下:

Point[] points=new Point[n];//Point是一个类
        for(int i=0;i<n;i++) {
            System.out.print("请输入x:");
            points[i].setX(in.nextInt());//报错的第29行
            System.out.print("请输入y:");
            points[i].setY(in.nextInt());
        }

报错信息如下:

Exception in thread “main” java.lang.NullPointerException
at test.Main.zjd(Main.java:29)
at test.Main.main(Main.java:9)

分析:

Point[] points=new Point[n];//在定义完类数组后原以为可以直接用如上代码直接使用,但是报如上错误。
于是将29行设置成断点,开始Debug
运行到这里时我就发现了问题:

在变量列表中发现points[0],points[1]的value都是null

猛的一看似乎没什么问题,但是仔细想想,数组中的每个元素都是一个对象啊,既然是对象我们没有对他进行分配空间(没有new)又怎么去使用呢。

于是完善后的代码:

Point[] points=new Point[n];
        for(int i=0;i<n;i++) {
            points[i]=new Point(); //在这里对类数组中的元素申请分配空间,解决。
            System.out.print("请输入x:");
            points[i].setX(in.nextInt());
            System.out.print("请输入y:");
            points[i].setY(in.nextInt());
        }

 

 

 
发表于 2018-10-09 20:34 IAmSoScArEd 阅读() 评论() 编辑 收藏

 

版权声明:本文为iAmSoScArEd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/iAmSoScArEd/p/9762674.html

java使用类数组 报错Exception in thread "main" java.lang.NullPointerException的更多相关文章

  1. java 将MySql数据库中的数据(某一列)取出放入数组中 转

    转:http://blog.csdn.net/ewili/article/details/8605638 假设 […]...

  2. Java Foreach语句使用总结

    foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 […]...

  3. Java连载3-编译与运行阶段详解&JRE,JDK,JVM关系

    ·一、 1.JDK下载地址:https://www.oracle.com/technetwork/java/j […]...

  4. 双亲委派模型,类的加载机制,搞定大厂高频面试题

    看过这篇文章,大厂面试你「双亲委派模型」,硬气的说一句,你怕啥? 读该文章姿势 打开手头的 IDE,按照文章内 […]...

  5. Java中lambda表达式详解

    原文地址:http://blog.laofu.online/2018/04/20/java-lambda/ 为 […]...

  6. Spring Boot快速开发利器:Spring Boot CLI

    Spring Boot CLI(Command Line Interface)是一个命令行工具,您可以用它来快 […]...

  7. Jetty源码解析(web.xml的处理机制)

    org.eclipse.jetty.webapp 包下的 StandardDescriptorProcesso […]...

  8. JVM调优之经验

    在生产系统中,高吞吐和低延迟一直都是JVM调优的最终目标,但这两者恰恰又是相悖的,鱼和熊掌不可兼得,所以在调优 […]...

随机推荐

  1. [ios开发]-APP-上架流程

    由于苹果的机制,在非越狱机器上安装必须通过官方的Appstore, 开发者开发好应用后上传Appstore,也需要通过审核等环节。 AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传Appstore作了支持。 本文从三个流程来...

  2. python3中的socket

    socket是什么?用它做什么? socket,我们通俗的称之为套接字, 是进程间通信的一种方式,但是他与其他 […]...

  3. Windows系统拷贝文件到Linux

    Windows系统拷贝文件到Linux上,通过脚本PSCP.EXE 安装PSCP.EXE,官网下载地址:htt […]...

  4. [tcp] 服务端大量close_wait 和 time_wait状态

    我开发的某个服务出现这个状态 , 出现了大量的close_wait , 占满了单进程的连接数1024     […]...

  5. 纯JavaScript实现的调用设备摄像头并拍照的功能

    这篇文章本来不在Jerry计划内的,咱们SAP中国研究院今天已经正式上班了,Jerry也回到工作岗位开始搬砖了 […]...

  6. 百度地图API图标、文本、图例与连线

    百度地图开放平台功能强大,使用简单,为地图的自定义提供了非常方便的途径! 本文以绘制一张全国机器辐射图为例记录 […]...

  7. static 关键字

    1.可以用来修饰的结构:主要用来修饰类的内部结构 属性、方法、代码块、内部类   2.static修饰属性:静 […]...

  8. Ubuntu10.04下的使用使用华为E1750 3G模块

      系   统:Ubuntu 10.04          3G模块:华为E1750 1 安装usb-mode […]...

展开目录

目录导航