Tej*_*shi 1 java generics interface
我有一个界面:
public interface Handler {
public <T> boolean shouldProcess(final T obj);
Run Code Online (Sandbox Code Playgroud)
和实施:
public class SampleHandler implements Handler {
@Override
public <Long> boolean shouldProcess(final Long date) {
return <some comparison>;
}
Run Code Online (Sandbox Code Playgroud)
我得到"类型参数Long隐藏类型长".我得到这个的原因是什么?
因为你没有T用具体类型进行实例化Long; 你实际上是在声明一个新的类型变量Long,它与常规的Longs具有相同的名称,因而会影响它们.我怀疑你的意思是:
public interface Handler<T> {
public boolean shouldProcess(final T obj);
}
public class SimpleHandler implements Handler<Long> {
@Override
public boolean shouldProcess(final Long date) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |