java - 基本类型与泛型类型的比较

标签 java operator-keyword

如何将泛型成员与原始类型进行比较?

说,

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/

相关文章:

java - 如何将请求从 web1/servlet 转发到 web2/servlet?

CLA 认证考试中 C 运算符(operator)优先

c++ - 如何重载运算符==?

c++ - ostream 运算符 << 未执行

java - Spring 邮件支持 - 无主题

java - OSMdroid 找不到类 GeoPoint

c++ new inplace under win32 API (visual studio 2010 express)

c++ - 实现字符串的 C++ 运算符

Java:调用/返回错误

java - 在正确的时间脱离 Switch