我的想法是有一个验证器接口,它有方法getRealValue().返回值取决于领域,它可能是String,Integer或Long值.
我的机会是:
我可以将返回类型指定为,Object并在每次调用此方法后使用转换.(RuntimeError如果错误的铸造发生).
我可以在实例化时使用泛型返回类型到验证器(我仍然需要使用强制转换但在方法内getRealValue只有一次).不过RuntimeError,如果我会忘记通过返回类型或传递错误的类型.
如果有办法我可以在验证器中存储返回类型并使用它?
Men*_*ena 10
对于您的第一点,ClassCastException如果出现不适当的演员表,则无法在运行时获取.
在你的第二种情况下,你不需要施放,见这里的例子:
public interface Foo<T> {
public T getValue();
}
Run Code Online (Sandbox Code Playgroud)
......然后在其他地方:
public class Blah<T> implements Foo<T> {
@Override
public T getValue() {
// TODO write the code
// note that because of type erasure you won't know what type T is here
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
......然后,在其他地方:
Blah blah1 = new Blah<String>();
String s = blah1.getValue();
Blah blah2 = new Blah<Long>();
// etc.
Run Code Online (Sandbox Code Playgroud)
最后,这里有一些文献给你:
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |