默认情况下可以序列化原语'void',为什么对象'Void'不能扩展Serializable?
添加示例:
RootImplementation将有一个编译错误,说"Void不在其范围内",因为它没有扩展Serializable.虽然将'someMethod'声明为'void',但这不是问题.
public interface Root<R extends Serializable> extends Serializable {
R someMethod();
}
public class RootImplementation implements Root<Void> {
public Void someMethod() {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
好的,作为对你的例子的回应,如果你将方法改为void它就行不行,因为该方法必须有一个返回类型(即使Java现在允许在重写方法中使用协变返回类型).讨论void混淆了这个问题.
你想要做的是将一个类型参数声明为"将只返回null".Void通常是一个很好的选择,但是要使Void工作,返回类型必须是Object.Void无法实现API中的每个接口,因为有人可能希望使用它来指示类型参数的null返回.
有三种方法可以查看您的问题:
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |