Java中类数组,创建后使用set函数,报NullPointerException空指针异常

2023-11-04

最近从新学习数组发现了一些问题
先创建一个Person类

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

然后主函数new Person[5]

import java.util.Random;

public class Demo01ArrayLIst {
    public static void main(String[] args) {
        int[] array = new int[3];
        Person[] Persons = new Person[5];
        Random r = new Random();
        for (int i = 0; i < 5; i++) {
            int anInt = r.nextInt(100);
            int age = r.nextInt(120)+1;
            Persons[i].setAge(age); //Exception in thread "main" java.lang.NullPointerException
            Persons[i].setName("Person"+anInt);
        }
        for (int i = 0; i < 5; i++) {
            System.out.println(Persons[i].toString());
        }
    }
}

一开始很疑惑明明new了为什么还会空指针异常呢。
于是开启调试
在这里插入图片描述
应用类型数组里面都是存放的地址
此时没有初始化,默认为null值
当我想使用set函数给类属性赋值时,由于没有指向的对象,所以造成了空指针异常

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中类数组,创建后使用set函数,报NullPointerException空指针异常 的相关文章

  • Grails 3.x bootRun 失败

    我正在尝试在 grails 3 1 11 中运行一个项目 但出现错误 失败 构建失败并出现异常 什么地方出了错 任务 bootRun 执行失败 进程 命令 C Program Files Java jdk1 8 0 111 bin java
  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch

随机推荐

  • mysql中文乱码解决方案_Mysql中文乱码解决方案

    Mysql中文乱码解决方案 时间 2017 07 11 来源 华清远见JAVA学院 中文乱码问题一直是我们编程过程中比较常见又让人头疼的问题 但是只要按照标准进行配置 就能很好的避免出现中文乱码问题 今天小编就和大家分享下Mysql中文乱码
  • 统计学基础-数据的图表展示

    理论基础 什么是统计学 统计学分为描述统计和推理统计 统计学研究什么 统计学没有固定的研究对象 统计学研究的是来自各个领域的数据 靠解决其他领域内的工作而生存 我们并不能因此就看轻统计学 就好像计算机现在渗透在各行各业 我们生活中的方方面面
  • iOS支付宝支付接入的几个坑—以及解决办法

    因为近期项目中需要接入支付宝支付功能 自己也爬了很多的坑 所以做了一下这边文章供大家学习参考 远离爬坑 文章主要讲到以下五部分 一 支付宝开放平台创建应用 二 签约移动支付功能 三 接入支付前的准备工作附准备工作中遇到难题的解决方法 四 配
  • window.open打开新窗口报错ie 位指明错误,原因是window没有加引号!

    function JsMod htmlurl tmpWidth tmpHeight htmlurl getRandomUrl htmlurl var newwin window open htmlurl window height tmpH
  • VUE前端框架

    目录 vue 概述 MVVM框架 入门案例 创建HTML文件 并引入vue js 练习 Vue的基础语法 1 运算符 函数 2 解析类型丰富的data 3 data的三种写法 二 Vue的指令 1 概述 2 v model v cloak
  • Download-centos7-repo

    Setup Local Yum Repository On CentOS 7 使用ftp和createrepo来构建iso中的rpm包源 install and cache rpm package cat etc yum conf more
  • 【网络结构设计】6、CSPNet

    文章目录 一 背景 二 方法 2 1 DenseNet 网络结构 2 2 Cross Stage Partial DenseNet 2 3 将 CSPNet 和其他结构结合 三 效果 论文 CSPNet A new backbone tha
  • 数据库相关中间件收录集

    数据库中间件 这里主要介绍互联网行业内有关数据库的相关中间件 数据库相关平台主要解决以下三个方面的问题 为海量前台数据提供高性能 大容量 高可用性的访问 为数据变更的消费提供准实时的保障 高效的异地数据同步 应用层通过分表分库中间件访问数据
  • ajaxForm和ajaxSubmit

    ajaxForm和ajaxSubmit 1 AjaxForm ajaxForm不能提交表单 在document的ready函数中 使用ajaxForm来为AJAX提交表单进行准备 提交动作必须由submit开始 document ready
  • java kafka关闭连接_kafka的连接问题,我如何通过代码知道服务端的kafka服务是否开启?...

    我在电脑的虚拟机搭建了kafka服务 在本地使用Java客户端进行访问 现在假如虚拟机上的服务被我关闭 我在本地的代码就会无法去向kafka推送消息 并且会在1分钟后报一个timeout的错 我可以控制这个timeout的时间吗 我应该怎么
  • 域名与IP地址的联系与区别

    转载自一个好朋友的博客链接 略有修改 共同学习 共同进步 我们也知道每一台机都有一个唯一ip地址 特别难记 所以出现了今天的DNS 域名 当我们的计算机想要和一个远程机器连接时 我们可以申请连接该机器ip地址下的DNS 例如 www bai
  • STM32应用开发实践教程:基于 RS-485 总线的多机通信应用开发

    5 1 1 任务分析 本任务要求设计一个基于 RS 485 总线的多机通信系统 系统中有两台设备 理论上最多可 接入 32 台设备 其中一台设备作为主机 连接 OLED 显示屏 另一台设备作为从机 连接温 湿度传感器 DHT11 与 LED
  • Centos 7安装部署PostgreSql 12

    安装 yum install https download postgresql org pub repos yum reporpms EL 8 x86 64 pgdg redhat repo latest noarch rpm yum i
  • 装饰器原理

    原理 原有函数 def fun 1 正常调用原有函数 fun 1 现有需要需要在原有函数基础上添加新功能 但是不改变原有函数法一 1 添加新函数 装饰一波 def fun 2 fun 1 嵌套函数 返回函数地址 fun 3 调用时才执行 d
  • Java数组全排列

    递归法 当数组元素重复时 会出现重复排列 public static void main String args int arr new int 1 2 3 4 5 6 7 8 9 f arr 0 static void f int arr
  • 聊聊Qt中的Widget调色板QPalette

    在实际的应用开发中 经常需要对某个窗体或某个控件的颜色外观 如背景色 前景色等进行设置 已达到界面美化的效果 Qt中的窗体或控件都是Widget类 Qt中提供的调色板QPalette类就是专门用于管理控件的外观显示 QPalette类相当于
  • bert模型蒸馏实战

    由于bert模型参数很大 在用到生产环境中推理效率难以满足要求 因此经常需要将模型进行压缩 常用的模型压缩的方法有剪枝 蒸馏和量化等方法 比较容易实现的方法为知识蒸馏 下面便介绍如何将bert模型进行蒸馏 一 知识蒸馏原理 模型蒸馏的目的是
  • 计算机的配件知识,组装一台电脑需要哪些配件 DIY装机必看的电脑硬件知识详解 (全文)...

    组装电脑是指用户可以按照自己的预算和用途来 在兼容的基础上 灵活搭配电脑硬件 又称为DIY组装电脑 DIY攒机等 由于灵活 高性价比 按需搭配等特性 是不少台式电脑主流方案之选 那么组装一台电脑需要哪些配件 下面 电脑爱好者 分享一下DIY
  • MinIO 对象存储(可以当作免费的图床)

    什么是Minlo MinIO与传统的存储和其他的对象存储不同的是 特征 一 快速入门 1 下载直接去官网 2 新建minio安装目录 执行如下命令 3 后台启动 4 查看状态 二 进行访问 并设置桶 1 访问 三 springboot进行实
  • Java中类数组,创建后使用set函数,报NullPointerException空指针异常

    最近从新学习数组发现了一些问题 先创建一个Person类 public class Person private String name private int age public Person String name int age t