如何为某些特定的通用类型做 if-else?

How to do if-else for some specific generic type?

我有 MyClass,我想为整数调用 mySubMethod(key)mySubMethod2(key),但只为非整数调用 mySubMethod2(key)

我尝试了以下代码,但没有用。我还尝试将 K == int 更改为其他内容,例如K == IntegerK.equals(int)K.equals(Integer) 等,但都不起作用。我该如何解决?谢谢。

public class MyClass<K,V> {

    public boolean myMethod(K key) {
        if (K == int) {
            mySubMethod(key);
        }else {
            // do nothing
        }
        mySubMethod2(key);
        return false;
    }

    public void mySubMethod(K key) {
        /** something */ 
    }

    public void mySubMethod2(K key) {
        /** something */ 
    }

}

使用关键词instanceof:

if (key instanceof Integer) {
    //...
}

此外,您可以删除空的 else 语句,只使用 if 语句:

if (key instanceof Integer) {
    mySubMethod(key);
}