gpt4 book ai didi

java - 更新对象中的字段值

转载 作者:行者123 更新时间:2023-12-02 11:15:22 25 4
gpt4 key购买 nike

我需要更新我的对象之一内的字段值,只需更新字符串即可。该对象位于数组内部。但我将通过在参数中输入对象“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;
}

这是存储计量表并具有一些方法的整个 MeterArchive 类。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MeterArchive
{
// instance variables - replace the example below with your own
ArrayList<Meter> meterList = new ArrayList<Meter>();

public void createClocks(){
Clock clockOne = new Clock("KH001", "Yes", "ClassRoom005", 0.0);
meterList.add(clockOne);
Clock clockTwo = new Clock("KH002", "Yes", "ClassRoom006", 0.0);
meterList.add(clockTwo);
}

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 void showAllMeter(){
for(Meter meter : meterList){
System.out.println(meter);
}
}
}

这是具有您可以添加的特定时钟值的时钟类。

public class Clock extends Meter
{

/**
* Constructor for objects of class Clock
*/
public Clock(String regNum, String workOrNot, String location, double minTime)
{
// initialise instance variables
super(regNum, workOrNot, location);
setMinTime(minTime);

}

//MINNIMUM TIME
public void setMinTime(double minTime){
this.minTime = minTime;
}

public double getMinTime(){
return minTime;
}

//EQUALS METHOD --- NOT SURE WHAT IT SHOULD DO... YET!
public boolean equals (Clock other){
return location.equals(other.location);
}

public String toString(){
String retur = super.toString() + "regNum: " + regNum +
"Does it work: " + workOrNot +
"Location: " + location +
"Min time value: " + minTime;
return retur;
}
}

这是一个父类(super class),为不同的仪表提供更通用的输入。

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”从任何值(最有可能是"is")更改为“否”。我发现 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;
}

关于java - 更新对象中的字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317321/

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