我在 EJB 类中使用 java 方法时遇到奇怪的行为。
我有几个Integer
,声明如下:
Integer decimalDigit = null;
Integer decimalExponent = null;
我将它们与其他参数一起传递给以下方法。
public void GetPrecision(Currency cur, String nodeCode, Integer decimalDigit, Integer decimalExponent) {
decimalDigit = new Integer(cur.getDecimalDigit());
decimalExponent = new Integer(cur.getDecimalExponent());
if (!CommonHelper.isNullOrEmptyOrBlank(nodeCode)) {
Node tempNode = nodeListProvider.getNodeList().get(nodeCode);
if (tempNode != null && tempNode.getDecimalDigit() != null) {
decimalDigit = (int) tempNode.getDecimalDigit();
decimalExponent = 0;
}
}
}
使用 new 运算符在方法内正确实例化了这两个对象,并且它们一直保持这种状态直到调用结束,但是,一旦我退出,这两个变量就再次为空。
我无法解释这种行为,有什么提示吗?
提前致谢
最佳答案
参数按值传递,但该方法接收引用的副本,而不是直接接收整数的引用。
因此,方法内参数的任何分配都不会更改您传递的引用所引用的值。
您的方法应该返回一个包含两个Integer
的结构实例(数组或自定义类)。
此外,名为 GetPrecision()
的方法预计会返回一些内容。
关于java - 整数对象在方法内正确实例化但返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42092994/