gpt4 book ai didi

java - Setter 仅在 setter 范围内更改字段的值

转载 作者:行者123 更新时间:2023-12-01 15:17:39 27 4
gpt4 key购买 nike

我有一个接收消息的应用程序。消息中存在可编辑的字段。当字段更改时,应将其保存到数据库中。不幸的是,setter 仅在 setter 的范围内更改给定字段的值。知道为什么会发生这种情况吗?这是 getter 和 setter 代码:

public String getSenderCharges() {
Tag tag = swiftMessage.getBlock4().getTagByName("71F");
String value = tag.getValue();
Field71F field = new Field71F(value);
String senderCharges = field.getValue();
return senderCharges;
}

public void setSenderCharges(String senderCharges) {
Tag tag = swiftMessage.getBlock4().getTagByName("71F");
String value = tag.getValue();
if(value.equals(senderCharges)){
tag.setValue(value);
}else{
tag.setValue(senderCharges);
}
}

最佳答案

您正在在setter方法中创建一个新的Tag对象,因此当您在tag.setValue等方法中更新Tag值时,不会反射(reflect)在setter方法之外。

标签是 setter 方法的本地标签,并且它在 setter 方法之外没有作用域。

试试这个方法 -

public void setSenderCharges(String senderCharges) {
String value = swiftMessage.getBlock4().getTagByName("71F").getValue();
if(!value.equals(senderCharges)){
swiftMessage.getBlock4().getTagByName("71F").setValue(senderCharges);
}
}

关于java - Setter 仅在 setter 范围内更改字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com