首页 > 解决方案 > 获取 ArrayList 中对象的信息

问题描述

我创建了一个ArrayList放置一些对象的位置。当我创建一个对象时,我可以通过执行以下操作来检索一些信息:

objectX.getActivityName();

我的问题是当我将所有对象放入 ArrayList 时,我无法访问我的 getActivityName 示例:

for (Object temp:tabRegristre) {
        System.out.println("TEMPS : " + temp); // I want to show the temp object Activity Name not all the info of the object.

    }

是否有任何解决方案可以仅从 for each 循环中显示我的对象的一些信息?而不是打印对象本身?

谢谢!!

标签: javaobjectarraylist

解决方案


泛型

您需要了解Java 泛型和使用尖括号<& >。请参阅Oracle 的教程

对于简短的类定义,请使用 Java 16 中的新记录功能。(或使用常规类。)

public record Activity ( String name , LocalDate when ) {}

制作几个这样的对象。

Activity brunch = new Activity( "Brunch" , LocalDate.of( 2021 , Month.MARCH , 15 ) ) ;
Activity meeting = new Activity( "Meeting" , LocalDate.of( 2021 , Month.APRIL , 23 ) ) ;

定义您的收藏。请注意我们如何使用尖括号告诉编译器我们希望将此列表限制为仅包含 type 的对象Activity

List< Activity > activities = new ArrayList< Activity >() ;

编译器可以推断出Activity赋值右侧的类=。所以不需要重复。

List< Activity > activities = new ArrayList<>() ;

将您的对象添加到集合中。

activities.add( brunch ) ;
activities.add( meeting ) ;

检索每个对象。打印日期。访问器方法的名称与其属性相同。我们的属性when()的访问器方法LocalDate名为when.

编译器知道只有Activity对象进入集合,所以检索到的项目必须是Activity对象。无需强制转换(显式类型转换)。

for( Activity activity : activities ) 
{
    System.out.println( activity.when() ) ;
}

推荐阅读