首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java -通过引用传递双精度值

java -通过引用传递双精度值
EN

Stack Overflow用户
提问于 2011-04-22 04:06:31
回答 6查看 23.2K关注 0票数 11

如何在java中通过引用传递双精度值?

示例:

代码语言:javascript
运行
复制
Double a = 3.0;
Double b = a;
System.out.println("a: "+a+" b: "+b);
a = 5.0;
System.out.println("a: "+a+" b: "+b);

此代码打印如下:

代码语言:javascript
运行
复制
a: 3 b: 3
a: 5 b: 3

我的问题是把它打印出来:

代码语言:javascript
运行
复制
a: 3 b: 3
a: 5 b: 5

我的目标是:我正在用jess写一个专家系统,在这个应用程序中,一个段的长度应该是双精度的,因为双精度值不是在一个单独的段中;它在许多其他的段中,比例classes..etc,所有这些都在引用它,等待它改变,这样它们可能会满足一些规则。

如果我不能改变那个双精度值,我就不能有一个包含引用双精度值的对象的特定规则触发。

EN

Stack Overflow用户

发布于 2011-04-22 04:15:08

Double在Java中是不可变的。赋值a = 5.0并没有改变a的双精度值,它实际上是创建了一个全新的双精度对象,并改变了a持有的指针的值,以指向该新对象。如果您希望能够在不更改引用的情况下更改值,则需要创建一个可变的双精度值。

代码语言:javascript
运行
复制
public class MutableDouble {
  private Double value;

  public Double getValue() {
    return value;
  }

  public void setValue(Double value) {
    this.value = value;
  }

  @Override
  public String toString() {
    return value != null ? value.toString() : "null";
  }
}

然后调用a.setValue(5.0);两者都会改变。

票数 1
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5749251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档