【问题标题】:java Lists getting class attributes [duplicate]java列表获取类属性[重复]
【发布时间】:2018-01-21 00:06:33
【问题描述】:

我无法获取学生的标记属性,不明白为什么。

public class StudentTest
{
    public static int numberPassed(List students)
    {
        int count =0;
        for( int i = 0; i < students.size();i++  )
        {
        System.out.println(students.get(i).mark);
        }
        return count;
}

【问题讨论】:

  • List students - 你删除了类型。列表的每个元素都被视为Object
  • 类似(Student)students.get(i)
  • @cᴏʟᴅsᴘᴇᴇᴅ 为什么要引入强制转换开销?首先使用泛型。
  • 代码不完整。 “学生”的宣言和启蒙在哪里?
  • 学生在学生班

标签: java list iteration


【解决方案1】:

在 Java 中,每个 List 都包含对象,因此操作 list.get(i) 将返回一个 Object。如果你想对Student类实例做一些动作,你需要检查这个对象是否是Student类实例,然后将它转换为Student类。

如果您的列表只包含学生,您可以像这样添加generic typeList&lt;Student&gt; stidents。然后操作list.get(i) 将返回一个Student 实例。但这是双向的,您只能将 Student 对象添加到此列表中。

简而言之,您有两种选择:

使用通用列表类型:

public static int numberPassed(List<Student> students){
      ...
}

或演员:

Student student = (Student)students.get(i);
System.out.println(student.mark);

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2021-03-26
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 2019-11-18
    • 2017-12-10
    相关资源
    最近更新 更多