java - 整数对象在方法内正确实例化但返回 null

标签 java

我在 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/

相关文章:

java - 在 Spring MVC 中选择性地绑定(bind)属性

java - 如何监视 Java 线程堆栈的内存

java - 创建 Java Spring Boot 端点以获取 json 形式的对象列表

java - 如何从内部存储中提取 zip 文件?

java - 404 Not Found 使用 Spring Cloud Starter Security 的 Spring Boot 应用程序

java - 从字节数组中提取 WAV 文件

java - 如何从CometD客户端向CometD服务器发送参数

java - HashMap 中的键存在检查

java - Mockito:验证 boolean 方法(或其他类型)

java - 安卓.view.InflateException : Binary XML file: Error inflating class