使用整型对象Java?
我刚刚读了一些Java代码,问自己为什么会出现这段代码:使用整型对象Java?,java,Java,我刚刚读了一些Java代码,问自己为什么会出现这段代码: int my_int = 100; Long my_long = Integer.my_int.longValue(); 如果给我一个错误,“我的int不能被解析或不是一个字段”,则无法工作;但是,该代码将起作用: Integer my_integer = new Integer(100); Long my_long = my_integer.longValue(); 请解释 因为Integer类没有名为my_int的静态方法 您需要
int my_int = 100;
Long my_long = Integer.my_int.longValue();
如果给我一个错误,“我的int不能被解析或不是一个字段”,则无法工作;但是,该代码将起作用:
Integer my_integer = new Integer(100);
Long my_long = my_integer.longValue();
请解释 因为Integer类没有名为
my_int
的静态方法
您需要将其作为参数传入,例如,
Integer.valueOf(my_int)
您应该记住,Integer
是一个类,int
是一个基本类型
你也应该试试这个
((Integer)my_int).longValue();
Integer.my_int
正在尝试引用类Integer
上名为my_int
的静态变量(字段)。不存在这样的变量/字段,因此会出现编译错误
以下工作也将起作用:
int my_int = 100;
Long my_long = Integer.valueOf(my_int).longValue();
但是,以下可能是更好的解决方案:
int my_int = 100;
Long my_long = Long.valueOf(my_int);
给出一个错误,因为my_int
不是Integer类的静态字段,所以编译器显然无法解析它。要解决此问题,可以将其转换为整数,并将其称为longValue()
method:
Long my_long = ((Integer) my_int).longValue();
此外,int
是基元类型,Integer
类将基元类型int的值包装在对象中
而在Long my_Long=my_integer.longValue()中代码>
之所以有效,是因为您试图调用Integer
类的longValue()
,它将此Integer
的值作为long返回,这是完全有效的。您认为Integer.my_int.longValue()
应该做什么?为什么?Integer.my_int.longValue()
应该是((整数)my_int).longValue()代码>整数!=整数您也可以使用Integer.valueof(my_int).longValue()代码>请阅读以下内容以获取一些参考:
Long my_long = ((Integer) my_int).longValue();