Преобразование Enum в строковый объект для Java легко - PullRequest
0 голосов
/ 11 февраля 2019

Я шаток от разбора и обработки текстовых файлов.Как преобразовать сигнатуры методов с перечислениями в строки, чтобы я мог читать из текстового файла и эффективно анализировать, не тратя ресурсы процессора?В настоящее время у меня есть сигнатуры методов, подобные этому

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?Спасибо!

1 Ответ

0 голосов
/ 11 февраля 2019

Вы читаете текстовый файл как String, поэтому я думаю, что вам нужно конвертировать String в VehicleType, а не наоборот, как вы упомянули.

Вы можете получить enum из String, используя valueOf():

vehicleType = VehicleType.valueOf(sc.next());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...