簡體   English   中英

無縫將Enum轉換為Java的String對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM