[英]Converting Enum to a String Object for Java seamlessly
我對解析和處理文本文件感到不安。 如何將帶有枚舉的方法簽名轉換為字符串,以便可以從文本文件讀取並有效解析而又不會浪費CPU資源? 我目前有這樣的方法簽名
public void createReservation(VehicleType v, String cName, long phoneNumber, String sDate, String eDate) throws Exception //right here
{
//trouble with representing VehicleType v in my Reservation text file
}
Reservation.txt文件類似於上面的簽名
"COMPACT", "John Wick", 312 900 6001, "2019-02-09", "2019-02-14"
"SUV", "Harvey Dent", 302 600 2001, "2019-02-11", "2019-02-15"
在我的主類中,我有一個像這樣的parseVehicleLine方法。
private void parseReservationLine(String str){
Scanner sc = new Scanner(str);
sc.useDelimiter(",");
while(sc.hasNext()){
vehicleType = sc.next();//there is an error here because it is still an enum of Vehicle class
String cName = sc.next();
long phoneNumber = sc.nextLong();
String Date = sc.next();
String eDate = sc.next();
}
sc.close();
}
public abstract class Vehicle {
public enum VehicleType
{
ECONOMY(18.00), PREMIUM(22.50), SUV(25.50);
private double vehicleDailyCost;
private VehicleType(double vehicleDailyCost)
{
this.vehicleDailyCost = vehicleDailyCost;
}
public double getVehicleDailyCost()
{
return vehicleDailyCost;
}
}
有人可以解釋我如何正確地將VehicleType枚舉轉換為String嗎? 謝謝!
您正在將文本文件讀取為String,所以我認為您需要將String轉換為VehicleType,而不是像您提到的那樣將其轉換。
您應該可以使用valueOf()
從String獲取枚舉:
vehicleType = VehicleType.valueOf(sc.next());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.