无法解析方法 'intValue()'
Cannot resolve method 'intValue()'
我正在尝试为私有双变量创建一个 get 方法。
写的时候
public class {
private double x = 4.12;
public int get(){
double temp = new Double(this.x);
return temp.intValue();
}
}
IDE 建议删除 Double Unnecessary boxing 'new Double(this.x)'
并且它不识别 intValue() 方法。写的时候也是一样:
return this.x.intValue();
基元没有方法,创建 Double
的新实例只是为了立即再次展开它是没有意义的。
改为:
return (int) this.x;
您似乎将温度存储在原始双精度数中,但您需要使用 class:
Double temp = new Double(this.x);
此外,不要使用新的 Double(...)
。使用 Double.valueOf(...)
:
Double temp = Double.valueOf(this.x);
发生这种情况是因为您将其分配给原始双精度类型。
试试这个 -
Double temp = new Double(this.x);
return temp.intValue();
您的变量 temp
被声明为 double
而不是 Double
并且 new Double(this.x)
创建了一个 Double
并将其拆箱为 double
。这就是编译器抱怨 Unnecessary boxing...
.
的原因
您可以简单地使用 return new Double(this.x).intValue();
。
double
和Double
是不同的。 double
是原始类型,没有附加方法。 Double
是 class 附有方法。要在它们之间进行转换,请使用类型转换。
public int get(){
return ((Double) x).intValue();
}
每个原始类型(int
、float
、char
等)都有一个 包装器 class。它们通常具有相同的名称,但首字母大写。编译器通常会自动在原语和包装器之间进行转换,但有时我们必须通过显式类型转换来帮助它。
我正在尝试为私有双变量创建一个 get 方法。
写的时候
public class {
private double x = 4.12;
public int get(){
double temp = new Double(this.x);
return temp.intValue();
}
}
IDE 建议删除 Double Unnecessary boxing 'new Double(this.x)'
并且它不识别 intValue() 方法。写的时候也是一样:
return this.x.intValue();
基元没有方法,创建 Double
的新实例只是为了立即再次展开它是没有意义的。
改为:
return (int) this.x;
您似乎将温度存储在原始双精度数中,但您需要使用 class:
Double temp = new Double(this.x);
此外,不要使用新的 Double(...)
。使用 Double.valueOf(...)
:
Double temp = Double.valueOf(this.x);
发生这种情况是因为您将其分配给原始双精度类型。 试试这个 -
Double temp = new Double(this.x);
return temp.intValue();
您的变量 temp
被声明为 double
而不是 Double
并且 new Double(this.x)
创建了一个 Double
并将其拆箱为 double
。这就是编译器抱怨 Unnecessary boxing...
.
您可以简单地使用 return new Double(this.x).intValue();
。
double
和Double
是不同的。 double
是原始类型,没有附加方法。 Double
是 class 附有方法。要在它们之间进行转换,请使用类型转换。
public int get(){
return ((Double) x).intValue();
}
每个原始类型(int
、float
、char
等)都有一个 包装器 class。它们通常具有相同的名称,但首字母大写。编译器通常会自动在原语和包装器之间进行转换,但有时我们必须通过显式类型转换来帮助它。