有人告诉我,诸如此类的原始类型int没有方法。.getClass().getName()当用于类型变量int并返回包装类“ ”时,它是如何工作的Integer?这是自动拳击的例子吗?int重要提示:这似乎只在将变量传递到泛型类时对我有用。然后从 main 方法调用泛型类中的方法。我正在使用这个通用类:public class gen< T > { private T thing; public gen(T thing) { this.thing = thing; } public String varType() { return thing.getClass().getName(); }}public class Driver() { int i = 5; gen g = new gen(i); System.out.println(g.getType());}输出是:java.lang.Integer有人可以解释一下这个过程的内部运作吗?像这样的事情是行不通的:public static void main(String args[]) { int i = 5; i.getClass().getName();}
1 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
例如,通用类型参数T
不能是原语。对于原始类型,您可以使用相应的包装类。更具体地说,T
不能int
。
在您的情况下,编译器会在调用中自动将值装箱为int
an 。Integer
new gen(i)
注 1: gen
和new gen
是原始泛型,因为您省略了类型参数。不要使用原始仿制药。再说了,如果你忽略它们又有什么意义呢?
注2: Java命名规范是类名以大写字母开头,所以类应该命名为Gen
,而不是gen
。
添加回答
举报
0/150
提交
取消