吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1141|回复: 19
收起左侧

[求助] 空指针异常求助

[复制链接]
且,听风吟 发表于 2020-8-18 23:17
一直空指针异常,不知道哪里的问题从数组遍历所有内容,解析为学生对象,将学生在存于一个新的List集合
package day_8_18;
import class_test.Stu;

import java.util.ArrayList;
import java.util.List;

public class StudentTest_12 {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("张三/18//99.5");
        list.add("赵四/20//91");
        list.add("王五/19//83");
        list.add("陈六/18//59");
        List<Student> list1=new ArrayList<>();
        Student[] students=new Student[list.size()];
        for (int i=0;i<list.size();i++){
            students.setName((list.get(i).split("/")[0]));
            //将年龄值转为int类型
            students.setAge((Integer.parseInt(list.get(i).split("/")[1])));
            students.setSex((list.get(i).split("/")[2]));
            //将分数值转为int类型
            students.setScore((Double.parseDouble(list.get(i).split("/")[3])));
        }
        for(int i=0;i<students.length;i++) System.out.println(students);
    }
}

class Student{
    private String name;
    private int age;
    private String sex;
    private double score;

    public Student() {

    }

    public Student(String name, int age, String sex, double score) {
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.score = score;
    }

    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;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", score=" + score +
                '}';
    }
}
2020-08-18_231542.jpg

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

想找一个好名字 发表于 2020-8-18 23:36
虽然你创建了一个student的集合,并初始化了长度,但是数组中的每个元素都为null,所有你studtens[i] 获取到student的为空
dedegoodboy 发表于 2020-8-18 23:36
3年多没接触java了,你把第18行每个值在for下面打印下不就知道了
Janem 发表于 2020-8-18 23:42
想找一个好名字 发表于 2020-8-18 23:42
想找一个好名字 发表于 2020-8-18 23:36
虽然你创建了一个student的集合,并初始化了长度,但是数组中的每个元素都为null,所有你studtens 获取到st ...

for (int i=0;i<list.size();i++){
            Student student = new Student();
            student.setName(list.get(i).split("/")[0]);
            //将年龄值转为int类型
            student.setAge(Integer.parseInt(list.get(i).split("/")[1]));
            student.setSex((list.get(i).split("/")[2]));
            //将分数值转为int类型
            student.setScore((Double.parseDouble(list.get(i).split("/")[3])));
            students = student;
        }
BY丶显示 发表于 2020-8-19 04:23
students 数组应该用 students[i].setName((list.get(i).split("/")[0]));
Sunny_Boy 发表于 2020-8-19 08:17


综合楼上几个回答,已经指出你的问题
QingYi. 发表于 2020-8-19 08:25
自己一步一步debug不就明白了
轩宸 发表于 2020-8-19 08:44
数组对象判断下非空
你也可以debug一下哪里是空
暗影拽神 发表于 2020-8-19 08:46
你的student类没有带有一个参数的构造方法,而你用了一个参数的构造方法,你不用添加list.size就行
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 01:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表