将枚举无缝转换为Java的字符串对象

将枚举无缝转换为Java的字符串对象,java,parsing,enums,Java,Parsing,Enums,我对解析和处理文本文件不太熟悉。如何将带有枚举的方法签名转换为字符串,以便在不浪费CPU资源的情况下从文本文件读取和有效解析?我现在有这样的方法签名 public void createReservation(VehicleType v, String cName, long phoneNumber, String sDate, String eDate) throws Exception //right here { //trouble with representing Vehicle

我对解析和处理文本文件不太熟悉。如何将带有枚举的方法签名转换为字符串,以便在不浪费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枚举转换为字符串而不会出现问题吗?谢谢

您正在以字符串的形式读取文本文件,因此我认为您需要将字符串转换为VehicleType,而不是像您提到的那样将字符串转换为VehicleType

您应该能够使用valueOf从字符串中获取枚举:

v、 姓名或v.ToString您可能想阅读
vehicleType = VehicleType.valueOf(sc.next());