gpt4 book ai didi

java - 从文件对象枚举加载

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:53 26 4
gpt4 key购买 nike

我将从文件中加载一个字符串并放入对象枚举中。

我创建了这样一个类:

public Passenger{

private String pass_name;
public enum State{

b,c,d;

};
....

State reser;

public Passenger(String n,State r)
pass_name=n;
reser=r;
}

在另一个文件中,我想读取一个文件并将字符串放在我可以创建对象乘客的方式中:

Passenger p=new Passenger(p_name,What should i put here)?

这是我的文件结构:

cod
passenger_name
reverved

cod 和 passenger 将通过 String 表示,而 reserved 应通过枚举表示。我将阅读文件:

 BufferedReader reader=new BufferedReader(new FileReader(fname));

String cod=reader.readLine();
while(cod!=null){
String p_name=reader.readLine();
how can i load a enum type?

Passenger p=new Passenger(p_name,What should i put here)?
cod=reader.readLine();

}

最佳答案

使用YourEnumType.valueOf将您从文件中读取的字符串转换为枚举:

public class Passenger {
public static enum State {
New,
Reserved,
Paid
}

private String name;
public State state;

public Passenger(String name, State state){
this.name = name;
this.state = state;
}

public String toString() {
return String.format("Passenger{name='%s', state=%s}", name, state.name());
}
}

class Main {
public static void main(String[] args) {
// line read from file
String stateString = "Reserved";
// convert string into state
Passenger.State state = Passenger.State.valueOf(stateString);

// create the passenger
Passenger pass = new Passenger("John Doe", state);
System.out.println(pass);
}
}

(我冒昧地制作了一个更清晰的示例代码版本。)

确保文件中的字符串与枚举常量的名称相同,包括大写字母,并且不包含额外的空格。

关于java - 从文件对象枚举加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363478/

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