如何将泛型成员与原始类型进行比较?
说,
void method(T k) {
if(k < 10) ...
}
与 C/C++ 不同,Java 中不能重载运算符,对吗? 为了评估上面的代码片段,我是否必须将 k 转换为实际类型?有没有比使用强制转换更优雅的方法来解决这个问题?
最佳答案
您的泛型类型可能被迫实现某个接口(interface),该接口(interface)在单独的方法中进行比较。在此版本中,您的 T 类也可以从另一个类派生。
public interface CompareToInt {
public boolean less(int that);
}
你的类和你的方法:
public class Dummy<T extends CompareToInt> {
void method(T k){
if (k.less(10)){
// ... do stuff
}
}
}
编辑:
我的解决方案受到 popalka 的启发
关于java - 基本类型与泛型类型的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269253/