gpt4 book ai didi

java - 尝试通过不同的类查看对象的实例数据

转载 作者:行者123 更新时间:2023-11-30 07:58:03 25 4
gpt4 key购买 nike

我有一个程序,其中有四个 Programmer 类的对象以及一些其他类,它们都继承我的父类 Employee

因此,在我的 main 方法中,我将这些 Employee 对象存储在 ArrayList 中。 Programmer 类的主要实例数据是“技术”,它保存了它们所知道的各种技术的字符串。例如,“SQL”、“Java”、“Python”...等。

好吧,我陷入了困境,因为我需要确定有多少程序员了解 Java 并将他们的个人收入等加起来。但是,当然,当我循环遍历我的 Employee ArrayList...

            for (Employee e : staff)
{
System.out.println(e.toString());
salaryTotal += e.getSalary();
if (e instanceof Programmer){
programmerStaff++;
if (e.technologies.contains("Java")){
}
}
}

它在我的Employee类中查找实例数据“技术”,在我确定了Programmer的实例之后,如何让它查看对象的实例化类>?

我也尝试使用访问方法,但它只会在 Employee 中查找所述方法

最佳答案

您必须将其转换为程序员:

if (((Programmer) e).technologies.contains("Java"))

我们在括号中添加了 (Programmer) e ,因为如果没有,它会尝试将 contains 方法返回的内容(在本例中为 boolean 值)转换为程序员

您还可以这样做:

Programmer programmer = (Programmer) e;

并非所有类型都可以转换为另一种特定类型,因此使用 instanceof 检查是避免 ClassCastException 的好习惯。 .

关于java - 尝试通过不同的类查看对象的实例数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32382880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com