gpt4 book ai didi

java - 为数组列表中的每个项目创建对象

转载 作者:行者123 更新时间:2023-11-29 07:47:47 26 4
gpt4 key购买 nike

我已经学习 java 一个多月了,之前没有 OOP 经验,所以请提供简单的答案!

我正在从事的项目本质上是一个简单的游戏。我获取了一个包含可变数量车辆名称的 txt 文件,并允许用户输入车辆名称,然后输入命令。

如何为数组列表中的每个项目创建一个对象?

这是我目前所做的(我在代码注释中举了一个我正在尝试做的例子):

public class VehicleApp {
public static void main(String[] args) throws FileNotFoundException, IOException{
File myDir = new File(System.getProperty("user.dir"));
File myFile = new File(myDir, "vehicleNames.txt");

FileReader in = new FileReader(myFile);
BufferedReader br = new BufferedReader(in);

ArrayList<String> vehicleList = new ArrayList<>();

int i = 0;
String line = null;
while((line = br.readLine()) != null){
vehicleList.add(line);
System.out.println(vehicleList.get(i));

//What I'm essentially trying to accomplish:
//Vehicle vehicleList.get(i) = new Vehicle();

i++;
}

br.close();


System.out.println("Enter user input as such:\n" +
"<vehicle name>, <command>");
}
}

最佳答案

我假设您实际上想将 String 传递给 Vehicle 类,因为无法动态分配变量名:

Vehicle newVehicle = new Vehicle(vehicleList.get(i));

如果您实际上是想为 ArrayList 中的每个项目创建一个新的 Vehicle,您可以按如下方式进行:

for(String s : vehicleList){
Vehicle newVehicle = new Vehicle(s);
}

上面等价于下面的:

for(int i=0; i<vehicleList.size(); i++){
Vehicle newVehicle = new Vehicle(vehicleList.get(i));
}

要根据传递给它的字符串识别 Vehicle,您应该在 Vehicle 类中使用 getter,如下所示:

public class Vehicle {
private String name;

public Vehicle(String name){
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

现在您可以检查给定的 Vehicle 是否具有匹配的名称!例如:

Vehicle vehicle = new Vehicle("Honda Civic");
if(vehicle.getName().equals("Honda Civic")){
System.out.println("Match!");
}

关于java - 为数组列表中的每个项目创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24025274/

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