【发布时间】:2017-11-08 17:48:32
【问题描述】:
以这个伪代码为例:
public static<T> int findNumber(T xNumber, double a, int b){
if (xNumber == int) {
// do something... return some number...
} else {
return null;
}
有没有办法在实际运行的 Java 代码中表达这一点?
【问题讨论】:
-
instanceof ... o.getClass() == Integer.getClass() .. 只是为了让您理解:int 是一个原语,所以它不起作用。
-
如果你需要检查泛型对象的类型,说明我们的设计有问题。
-
同意@user902383。如果您需要对
T泛型定义进行更多控制,请考虑在您的方法定义中添加<T extends ...>等限制 -
您可能根本不需要泛型,将 T 替换为
Number。