如何为某些特定的通用类型做 if-else?
How to do if-else for some specific generic type?
我有 MyClass
,我想为整数调用 mySubMethod(key)
和 mySubMethod2(key)
,但只为非整数调用 mySubMethod2(key)
。
我尝试了以下代码,但没有用。我还尝试将 K == int
更改为其他内容,例如K == Integer
、K.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);
}
我有 MyClass
,我想为整数调用 mySubMethod(key)
和 mySubMethod2(key)
,但只为非整数调用 mySubMethod2(key)
。
我尝试了以下代码,但没有用。我还尝试将 K == int
更改为其他内容,例如K == Integer
、K.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);
}