gpt4 book ai didi

java - 继承期间Java中的泛型

转载 作者:行者123 更新时间:2023-11-29 05:12:15 25 4
gpt4 key购买 nike

我有一个

public class Person {
public Person() {
super();
}
}
public class Employee extends Person {
public Employee() {
super();
}
}

来自不同的 java 文件:

public <T extends Person> T gPerson(){
Employee p = new Employee();
return p;
}

public Person getPerson(){
Employee p = new Employee();
return p;
}

第一个方法 gPerson() 有一个编译时错误:无法从 Employee 转换为 T。为什么会出现这个错误。

最佳答案

public <T extends Person> T gPerson()

意味着 gPerson 返回某个未知类型,该类型必须是 Person 或 Person 的子类。

这意味着:

NonEmployee ne = gPerson();

是合法的(假设 NonEmployee 是扩展 Person 的某个类)。因此 gPerson 无法返回 Employee,因为 Employee 无法转换为 NonEmployee)。

关于java - 继承期间Java中的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009068/

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