gbe*_*gbe 0 java generics abstract-class arraylist
我目前正在使用一个抽象类,我将通过另一个名为People的类进行扩展
public abstract class MediaContainer<T> {
abstract T DisplayName(T dispname);
}
Run Code Online (Sandbox Code Playgroud)
但是当我试图在第二次覆盖它时我得到一个错误
public class People<T> extends MediaContainer<T> {
@Override public T DisplayName(T person){
return System.out.println(person);
}
}
Run Code Online (Sandbox Code Playgroud)
我猜这个错误是在这一行:
return System.out.println(Person);
Run Code Online (Sandbox Code Playgroud)
println返回void,您的DisplayName方法需要返回T.如果该方法仅用于打印,System.out如其名称所示,只需将其更改为返回即可void.
注意:请确保在您的问题中提供更多信息,以获得更好的质量帮助并避免downvotes.对于编译错误,请始终包含错误消息和正在发生的确切行.
编辑:作为旁注,仅基于类的名称,您似乎应该为您的People类使用有界类型参数:
public class People<T extends Person> extends MediaContainer<T> { ... }
Run Code Online (Sandbox Code Playgroud)
甚至解析类型参数:
public class People extends MediaContainer<Person> { ... }
Run Code Online (Sandbox Code Playgroud)
这将允许People方法与其包含的对象作为Person实例,调用Person方法等进行交互.这假设Person当然有相应的类.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |