当将整数作为函数参数传递给对象时,是否可以自动将整数转换为对象? 我有这个函数原型:
public void aggiungiA(Nodo x)
Nodo 有自己的带有整数参数的构造函数。现在,我想做的是:
aggiungiA(5);
带有隐含的演员阵容。 有没有办法做?
在 java 中没有通过构造函数调用进行隐式强制转换。您必须显式调用构造函数 - 从调用方或通过重载方法:
public class MyClass {
public void aggiungiA(int i) {
aggiungiA(new Nodo(i));
}
public void aggiungiA(Nodo x) {
// Do something with X
}
}
除了@Mureinik的回答之外,我猜你来自一个C++背景,某些演员确实会自动发生。在 Java 中,情况有所不同 - 唯一的隐式强制转换是:
- 扩大表达式中数值类型的范围。例如
long x = myLong + inInt
myInt 将在两个长值相加之前
转换为 - 其对象的基元值等效。例如,"int"自动转换为"整数",而"布尔值"可以自动转换为"布尔值"。这称为自动装箱
- 装箱对象可以强制转换为其特权值。例如,可以将"整数"转换为"int",或将"字符"转换为"char"。由于这与以前的投射相反,因此称为自动拆箱。