为了账号安全,请及时绑定邮箱和手机立即绑定

.getClass().getName() 方法为何适用于 int 类型?

.getClass().getName() 方法为何适用于 int 类型?

浮云间 2024-01-25 22:02:07
有人告诉我,诸如此类的原始类型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

在您的情况下,编译器会在调用中自动将值装箱intan 。Integernew gen(i)


注 1: gennew gen原始泛型,因为您省略了类型参数。不要使用原始仿制药。再说了,如果你忽略它们又有什么意义呢?

注2: Java命名规范是类名以大写字母开头,所以类应该命名为Gen,而不是gen


查看完整回答
反对 回复 2024-01-25
  • 1 回答
  • 0 关注
  • 29 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信