Java 正确使用泛型
我目前使用的是一个抽象类,通过另一个名为People的类进行扩展Java 正确使用泛型,java,generics,arraylist,abstract-class,Java,Generics,Arraylist,Abstract Class,我目前使用的是一个抽象类,通过另一个名为People的类进行扩展 public abstract class MediaContainer<T> { abstract T DisplayName(T dispname); } 公共抽象类MediaContainer{ 抽象T显示名(T dispname); } 但是当我试图在第二秒内覆盖它时,我得到了一个错误 public class People<T> extends MediaContainer<T&
public abstract class MediaContainer<T> {
abstract T DisplayName(T dispname);
}
公共抽象类MediaContainer{
抽象T显示名(T dispname);
}
但是当我试图在第二秒内覆盖它时,我得到了一个错误
public class People<T> extends MediaContainer<T> {
@Override public T DisplayName(T person){
return System.out.println(person);
}
}
公共类人员扩展MediaContainer{
@覆盖公共T显示名(T个人){
返回系统.out.println(人);
}
}
我猜错误在这行:
return System.out.println(Person);
println
返回void
,您的DisplayName
方法需要返回T
。如果该方法仅用于打印到System.out
(顾名思义),只需将其更改为返回void
注意:请确保在您的问题中提供更多信息,以获得更高质量的帮助并避免否决票。对于编译错误,请始终包含错误消息及其发生的确切行
EDIT:作为旁注,仅根据类的名称,您似乎应该为人员
类使用有界类型参数:
public class People<T extends Person> extends MediaContainer<T> { ... }
公共类人员扩展MediaContainer{…}
或者甚至解析类型参数:
public class People extends MediaContainer<Person> { ... }
公共类人员扩展MediaContainer{…}
这将允许
People
的方法与其包含的对象交互,如Person
实例、调用Person
方法等。这当然是假设有一个相应的Person
类。我猜错误在这一行:
return System.out.println(Person);
println
返回void
,您的DisplayName
方法需要返回T
。如果该方法仅用于打印到System.out
(顾名思义),只需将其更改为返回void
注意:请确保在您的问题中提供更多信息,以获得更高质量的帮助并避免否决票。对于编译错误,请始终包含错误消息及其发生的确切行
EDIT:作为旁注,仅根据类的名称,您似乎应该为人员
类使用有界类型参数:
public class People<T extends Person> extends MediaContainer<T> { ... }
公共类人员扩展MediaContainer{…}
或者甚至解析类型参数:
public class People extends MediaContainer<Person> { ... }
公共类人员扩展MediaContainer{…}
这将允许
People
的方法与其包含的对象交互,如Person
实例、调用Person
方法等。这当然是假设存在相应的Person
类。什么错误?您可以发布您的错误吗?您可能应该将该方法的返回类型从T
更改为void
。我建议您使用标准的大写规则,例如“person”而不是“person”。奇怪的大写让人困惑,语法也更亮了。什么错误?您可以发布您的错误吗?您可能应该将该方法的返回类型从T
更改为void
。我建议您使用标准的大写规则,例如“person”而不是“person”。奇怪的大写字母让人困惑,语法也更亮了。