gpt4 book ai didi

Java ArrayList不同的对象相互扩展,如何了解我检索到的对象?

转载 作者:行者123 更新时间:2023-12-02 08:40:50 24 4
gpt4 key购买 nike

所以 Java 不是我的强项,所以我现在陷入困境。这里简单解释一下

public class UserGroup {
protected List<User> users = new ArrayList();
protected String name;
}

public class User {
private String username;
}

public class Tutor extends User {
private String subject;
}

public class Student extends User {
private String grade;
}

我的问题是,如果我将可能是用户、导师或学生的东西添加到列表中,当我稍后取回对象(通过遍历数组列表)时,我如何知道它是什么对象类型,以便我知道我是否有访问.grade、.subject 等?

或者我完全错过了一些东西,我觉得我应该在这里使用泛型。

最佳答案

更重要的问题为什么你想知道确切的类型?

遵循Liskov substitution principle ,如果您有用户对象的集合,您应该能够在不知道其类型的情况下对它们执行所有操作。

如果您需要知道类型,那么此时您可能不应该处理用户集合。要么创建两个列表(每种类型一个),要么设计您的类,这样您就不需要知道它们的确切类型。

关于Java ArrayList不同的对象相互扩展,如何了解我检索到的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61398463/

24 4 0