函数参数中的 Java 隐式强制转换



当将整数作为函数参数传递给对象时,是否可以自动将整数转换为对象? 我有这个函数原型:

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 + inIntmyInt 将在两个长值相加之前
  • 转换为
  • 其对象的基元值等效。例如,"int"自动转换为"整数",而"布尔值"可以自动转换为"布尔值"。这称为自动装箱
  • 装箱对象可以强制转换为其特权值。例如,可以将"整数"转换为"int",或将"字符"转换为"char"。由于这与以前的投射相反,因此称为自动拆箱。

相关内容

  • 没有找到相关文章

最新更新