第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將字符串轉(zhuǎn)換為枚舉以允許讀取文件

將字符串轉(zhuǎn)換為枚舉以允許讀取文件

慕田峪4524236 2023-07-19 16:04:51
我正在編寫(xiě)需要獲取文件輸入然后將值重建到 ArrayList 中的代碼。這是迄今為止將文件轉(zhuǎn)換為對(duì)象的代碼。  public static ArrayList<User> fileToObject() {        ArrayList<User> FileToObject = new ArrayList<>();        Scanner in = null;        boolean err0 = false;        try {            in = new Scanner(Paths.get("User_info.txt"));        } catch (IOException ex) {            err0 = true;        }        if (!err0) // if couldn't open file then skip        {            while (in.hasNext()) {                String theUser = in.nextLine();                String[] Line = theUser.split(",");                User user = null;                try {                    if ( Line.length == 10) {                        // reconstruct Address                        Address a1 = new Address( Line[2],  Line[3],  Line[4],  Line[5],  Line[6],                                Integer.parseInt( Line[7]));                        // reconstruct Customer                        user = new Customer( Line[0], Line[1], Line[2], Line[3], Line[4], Line[5], Line[6], Line[7],a1, Line[14]);                         FileToObject.add(user);                    } else {                        return null;                    }                } catch (NoSuchElementException ex) {                    System.out.println("File improperly formed. Terminating.");                }            }            in.close();        }        // write object back to file.        File f1 = new File(Paths.get("User_info.txt").toUri());        Formatter out = null;        boolean err = false;        try {            out = new Formatter(f1);        } catch (FileNotFoundException ex) {            err = true;        }        }    }}我的問(wèn)題是數(shù)組 User( user = new Customer(Line[0], Line[1], Line[2], Line[3], Line[4], Line[5)) 的元素 Line[5]是枚舉類(lèi)型(如下面客戶類(lèi)的第一個(gè)構(gòu)造函數(shù)中所示),因此我收到錯(cuò)誤“不兼容類(lèi)型,字符串無(wú)法轉(zhuǎn)換為 UserType(UserType 是枚舉)。我和我的導(dǎo)師交談,他告訴我需要將字符串轉(zhuǎn)換為枚舉。我不確定他的意思,因?yàn)樗粫?huì)進(jìn)一步解釋。他是在談?wù)撟址當(dāng)?shù)組還是我需要將正在讀取的文件中的字符串轉(zhuǎn)換為枚舉?我有點(diǎn)迷失所以非常感謝任何幫助
查看完整描述

3 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

如果UserType是一個(gè)enum,你可以用靜態(tài)UserType.valueOf()方法轉(zhuǎn)換它,即:

UserType userType = UserType.valueOf(Line[5]);

現(xiàn)在您可以在以下代碼中使用userType來(lái)代替。Line[5]

請(qǐng)注意,Line[5]必須與任何枚舉類(lèi)型的拼寫(xiě)完全匹配,否則IllegalArgumentException將拋出異常。


查看完整回答
反對(duì) 回復(fù) 2023-07-19
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果UserType.valueOf無(wú)法提供您需要的內(nèi)容,請(qǐng)?zhí)砑臃祷靥囟▽?shí)例的靜態(tài)方法UserType。例如:-


public enum UserType{


    CUSTOMER("customer");


    private String name;


    UserType(String name){

        this.name = name;

    }


    //A Map that holds user type name as key.

    private static Map<String,UserType> userTypeMap = new HashMap<>();


    //Populate userTypeMap with UserType instance

    static{

        for(UserType type : values()){

            userTypeMap.put(type.name, type);

        }

    }


    public static UserType of(String name){


        return userTypeMap.get(name);

    }

}

調(diào)用者可以獲得UserType如下實(shí)例:-


UserType type = UserType.of("customer");


查看完整回答
反對(duì) 回復(fù) 2023-07-19
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

你的解決方案太長(zhǎng)了。有一種優(yōu)雅的方法可以做到這一點(diǎn)


Properties properties = new Properties();

properties.load(new FileInputStream(new File("FileLocation")));

properties.values();

文件可以包含值列表、鍵值對(duì)。在第 2 行,Properties 對(duì)象中加載了第 2 個(gè)文件?,F(xiàn)在您可以根據(jù)您的需要進(jìn)行處理。


查看完整回答
反對(duì) 回復(fù) 2023-07-19
  • 3 回答
  • 0 關(guān)注
  • 213 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)