Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用整型对象Java?_Java - Fatal编程技术网

使用整型对象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的静态方法 您需要

我刚刚读了一些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
的静态方法


您需要将其作为参数传入,例如,
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();