Java在强制转换到对象后更改变量的值

Java在强制转换到对象后更改变量的值,java,Java,我试图在将变量强制转换为对象后更改它。 这在Java中是可能的还是有其他类似的选项 Double a = 1.; Object o = a; Double b = (Double)o; b = 2.; System.out.println(a); // print 2 如果有两个参照指向同一对象,则无法更改将两个参照都指定给新对象的两个参照的名称 Double a = 1., Double b = a; Double b = 2.; // here b now points to new ob

我试图在将变量强制转换为对象后更改它。 这在Java中是可能的还是有其他类似的选项

Double a = 1.;
Object o = a;
Double b = (Double)o;
b = 2.;
System.out.println(a); // print 2

如果有两个参照指向同一对象,则无法更改将两个参照都指定给新对象的两个参照的名称

Double a = 1.,
Double b = a;
Double b = 2.; // here b now points to new object. a is not changed. Now you have two separate variables pointing to separate objects.
如果您真的需要它,那么您需要使用具有setter/better的包装器类来操作内部状态

DoubleWrapper a = new DoubleWrapper(2); // not a standard JDK class. You will need to write it yourself
DoubleWrapper b = a;
b.set(1);
System.out.println(b.get()); // prints 1
System.out.println(a.get()); // also prints 1

不,这是不可能的。您所做的只是将引用
b
分配给
double
2
。这闻起来像是一个XY的问题-你的实际问题是什么?没有铸造和中间对象也会发生同样的情况。对于基本体
inti=1,实际上是相同的;int j=i;j=2不会将
i
更改为2纯。但这无关紧要。这里没有对任何方法的调用。只有作业。