Java 更新对象中的字段值

Java 更新对象中的字段值,java,Java,我需要更新一个对象中的字段值,只需更新字符串即可。对象位于数组内部。但是我将通过在参数中键入objects“regNum”来定位对象 这就是我所尝试的,当我需要输入列表和特定于对象的值时,我真的不知道如何使用set()方法 public boolean doesNotWork( String regNumInput ){ for(int i = 0; i < meterList.size(); i++){ if(regNumInput == meterList.ge

我需要更新一个对象中的字段值,只需更新字符串即可。对象位于数组内部。但是我将通过在参数中键入objects“regNum”来定位对象

这就是我所尝试的,当我需要输入列表和特定于对象的值时,我真的不知道如何使用set()方法

public boolean doesNotWork( String regNumInput ){
    for(int i = 0; i < meterList.size(); i++){
        if(regNumInput == meterList.get(i).getRegNum()){
            meterList.set(meterList.get(i).getWorkOrNot(), new String ("No"));
        }
    }
    return true;
}
这是一个超级类,它为不同的仪表提供了更通用的输入

public class Meter
{

public String regNum;
public String workOrNot;
public String location;


/**
 * Constructor for objects of class Clock
 */
public Meter(String regNum, String workOrNot, String location)
{
    // initialise instance variables
    setRegNum(regNum);
    setWorkOrNot(workOrNot);
    setLocation(location);
}

//REGISTRATION NUMBER
public void setRegNum(String regNum){
    this.regNum = regNum;
}

public String getRegNum(){
    return regNum;
}

//WORK OR NOT
public void setWorkOrNot(String workOrNot){
    this.workOrNot = workOrNot;
}

public String getWorkOrNot(){
    return workOrNot;
}

//LOCATION
public void setLocation(String location){
    this.location = location;
}

public String getLocation(){
    return location;
}
}

因此,在MeterArchive类中,我想将字段值“workOrNot”从任何值(很可能是“是”)更改为“否”。我发现set()通常是一种方法,但在这个程序中,我希望用户添加特定的“regNum”,然后该方法将“workOrNot”字段中的String改为“No”。正如我前面所说的,我不知道如何瞄准对象内部的特定字段。有人能解释一下怎么做吗

您需要使用setter方法
setWorkOrNot()
更新所需
Meter
对象上的字段
workOrNot

使用以下代码:

public boolean doesNotWork( String regNumInput ){
    for(int i = 0; i < meterList.size(); i++){
        if(regNumInput.equals(meterList.get(i).getRegNum())){
            meterList.get(i).setWorkOrNot("No");
        }
    }
    return true;
}
public boolean doesnowork(字符串regnumput){
对于(int i=0;i
aha,好的。因此,我在doesnowork方法内部使用这个方法
public void setWorkOrNot(String workOrNot){this.workOrNot=workOrNot;}
。setWorkOrNot()将允许我更改字段值?是的,您可以编写它。此外,Meter类中的字段应该是私有的。若将其公开,那个么getter/setter方法就并没有意义了。我建议您阅读这个被称为封装的概念-@sahilchabra不要将字符串与
=
进行比较,而是使用
equals
public class Meter
{

public String regNum;
public String workOrNot;
public String location;


/**
 * Constructor for objects of class Clock
 */
public Meter(String regNum, String workOrNot, String location)
{
    // initialise instance variables
    setRegNum(regNum);
    setWorkOrNot(workOrNot);
    setLocation(location);
}

//REGISTRATION NUMBER
public void setRegNum(String regNum){
    this.regNum = regNum;
}

public String getRegNum(){
    return regNum;
}

//WORK OR NOT
public void setWorkOrNot(String workOrNot){
    this.workOrNot = workOrNot;
}

public String getWorkOrNot(){
    return workOrNot;
}

//LOCATION
public void setLocation(String location){
    this.location = location;
}

public String getLocation(){
    return location;
}
}
public boolean doesNotWork( String regNumInput ){
    for(int i = 0; i < meterList.size(); i++){
        if(regNumInput.equals(meterList.get(i).getRegNum())){
            meterList.get(i).setWorkOrNot("No");
        }
    }
    return true;
}