gpt4 book ai didi

java - 如何通过对象传递访问另一个泛型类中的类的属性?

转载 作者:行者123 更新时间:2023-12-02 11:47:59 24 4
gpt4 key购买 nike

在我的代码中,通用类 Public 将在 check() 方法中接收通用对象。这些通用对象可能来自 JuniorInstructor 类或 SeniorInstructor 类。我想访问 JuniorInstructor 类或 SeniorInstructor 类的属性。我尝试了下面的实现并且它有效。但是,有没有更好的方法来做到这一点?

   class JuniorInstructor extends Instructor {

public JuniorInstructor(String id, String name) {
super(id, name);

}

}

class Public<T> {
T object;
JuniorInstructor j1;
SeniorInstructor s1;

public void check(T object) {

this.object = object;
if (object instanceof SeniorInstructor) {
s1 = (SeniorInstructor) object;
System.out.println("name: " + s1.name + "\tid: " + s1.id);
} else {
j1 = (JuniorInstructor) object;
System.out.println("name: " + j1.name + "\tid: " + j1.id);
}
}// check
}
public static void main(String[] args) {
SeniorInstructor s1 = new SeniorInstructor("120", "Ashik");
JuniorInstructor j1 = new JuniorInstructor("677", "Tareq");
Public p = new Public();

p.check(j1);

}

最佳答案

您可以进一步限定T:

class Public<T extends Instructor>

只需确保您需要访问的所有方法都在 Instructor 上定义即可。然后,您就可以直接在 Public 中调用它们。

[编辑] @JBNizet 在评论中有一个很好的观点,如果 Instructor 及其子类就是它需要处理的全部,那么 Public 并不真正需要是泛型。

关于java - 如何通过对象传递访问另一个泛型类中的类的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48063905/

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