java - 是否可以将新对象分配给“this”?
问题描述
我在类的构造函数中进行了一些计算,现在假设我想更改此类中的变量字段之一,这将影响之前进行的计算。
每次我调用任何set
方法时,我都需要再次运行计算(或复制代码两次(这是错误的编码..))
我认为如果我可以如下所示,代码看起来会更好,我只是想知道它不能完成的原因是什么?
class Entity
{
private int x,y,z;
public Entity(int x,int y,int z)
{
Calculating();
}
private void Calculating()
{
// ...
}
public void Set_X(int x)
{
this = new Entity(x,this.y,this.z)
}
}
解决方案
您不能将新对象分配给this
。这总是引用当前对象。
为什么不直接设置 X 并调用Calculting()
from 的方法Set_X
?这将改变当前对象的状态。
如果您不想更改当前对象,例如由于对它的其他引用,您将必须创建一个新实例并将其从Set_X
.
推荐阅读
- typo3 - TYPO3 数据库完整性检查搜索 NULL
- powerbi - Power BI 和 Excel 未调用自定义 ODBC 驱动程序数据分页接口
- ffmpeg - 通过从视频中保存 jpg,哪个 ffmpeg api 用于 cmd 选项“-q:v 1”
- odata - 到不同 OData 控制器的不同路由
- laravel - 我怎样才能只对非空值和空值不分组
- javascript - 在选择框选项中聚焦时如何避免更改字体颜色?
- javascript - 如何在每次单击按钮时重复摇动动画?简单的JS
- python - 如何将PNG图像转换为透明的GIF?
- reactjs - 根据firebase样式的组件reactjs选择不同的属性
- postgresql - 为什么 Postgres 在仅索引扫描中花费这么多时间