我得到的整数值为';整数';在我的Java 8代码的列表中

我得到的整数值为';整数';在我的Java 8代码的列表中,java,eclipse,integer,Java,Eclipse,Integer,我是java新手。 在java中,我可以看到int和Integer是不同的。 int是基元,Integer是类。 我已经完成了以下代码 import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; import lombok.Builder; import lombok.Getter; import lombok.Sette

我是java新手。 在java中,我可以看到int和Integer是不同的。 int是基元,Integer是类。 我已经完成了以下代码

import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Builder
public class Student {

    private Integer roleNo;
    private String name;
    private String city;


    public static void main(String[] args) {
        // TODO Auto-generated method stub

        List<Student> lstStudent = new LinkedList<Student>();
        lstStudent.add(new Student(111, "aaa", "Moon"));
        lstStudent.add(new Student(333, "ccc", "Sun"));
        lstStudent.add(new Student(222, "bbb", "Jupiter"));


        List<Student> sortedStudents = lstStudent.stream().sorted(Comparator.comparing(Student::getRoleNo))
                                                          .collect(Collectors.toList());

        System.out.println(sortedStudents);

    }

}
import java.util.Comparator;
导入java.util.LinkedList;
导入java.util.List;
导入java.util.stream.collector;
进口龙目造船厂;
进口龙目吸气剂;
进口龙目织机;
@吸气剂
@塞特
@建筑商
公立班学生{
私有整数roleNo;
私有字符串名称;
私人城市;
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
List lststuden=newlinkedlist();
添加(新学生(111,“aaa”,“月亮”);
新增(新学生(333,“ccc”、“Sun”);
增加(新学生(222,“bbb”,“Jupiter”);
List sortedStudents=lstStudent.stream().sorted(Comparator.comparing(Student::getRoleNo))比较
.collect(Collectors.toList());
系统输出打印LN(分类学生);
}
}
我在
sortedstudent
列表中给出了断点,我可以看到我得到了所有的值,但没有得到整数值。它显示为“整数”。。。。。。。。。为什么? 我是否遗漏了一些关键概念

这里很好地解释了发生的事情:

Integer是一个类,与Java语言中的任何其他类都没有区别。整型变量存储对整型对象的引用,就像任何其他引用(对象)类型一样。parseInt(“1”)是从Integer类调用静态方法parseInt(请注意,此方法实际上返回的是int而不是整数)

更具体地说,Integer是一个只有一个int类型字段的类。该类用于需要像对待任何其他对象一样对待int的情况,例如在泛型类型或需要可空性的情况下

比如
@NicholasK
在评论中说;如果在调试器中展开
Integer
对象,您将看到它是一个包含名为
valu
e的单个字段的对象,该字段包含表示为原语
int
的实际值

虽然您可以在IDE中亲自看到这一点,但下面是一个屏幕截图,为所有可能遇到相同问题的人提供更多的上下文:


阅读更多信息。

展开
roleNo
。您可以看到一个名为
value
的字段。这个问题与Java无关,而是与您的IDE有关?所有代码都使用整数。没有什么是小写的整数。当然,Java中没有小写的整数。我同意@SharonBenAsher的观点,您应该删除
Java-8
标记,或者添加一个适合您的IDE的标记。这个值到底是多少?我可以看到字符串也有值字段。@user2746466这是我正在使用的IntelliJ IDEA特有的。字符串字段只是主要的方法参数
args
。正如我在回答中所说的,调试时,通过在变量窗口中展开对象项,可以查看
Integer
对象的
int
值。@user2746466如果您想了解更多有关Eclipse调试的一般信息,我在回答的末尾提供了一个额外的资源供您阅读。我相信您的问题已经得到了回答,尽管您可以提出与原始问题相关的后续问题,但请阅读了解更多信息。