我正在構建一個應用程式,根據用戶從下拉選單中的選擇,我用不同的語言列印一個單詞。然而,我當前的方法作業效率不高,因為我從嵌套類獲取資料并從完全不同的類請求它,這需要為嵌套類中的每個單詞撰寫一行代碼。我怎樣才能以更有效/更簡單的方式實作這一目標?這是所述代碼的基本格式:
public class words {
class example {
String english = "example";
String chinese = "example_in_chinese";
}
class example2 {
String english = "example2";
String chinese = "example2_in_chinese";
}
}
public class getWords {
words word = new words();
words.example example = word.new example();
words.example2 example2 = word.new example2();
*/ I have to repeat the above line for each of the 20
words I have in a nested class
/*
}
uj5u.com熱心網友回復:
我認為您可以嘗試使用 Map。
public class Words {
static Map<String, String> example1 = new HashMap<String, String>();
example1.put("english", "example");
example1.put("chinese", "example_in_chinese");
static Map<String, String> example2 = new HashMap<String, String>();
example2.put("english", "example2");
example2.put("chinese", "example2_in_chinese");
}
所以你可以打電話
Words.example1.get("english");
甚至更進一步,您可以創建一個列舉語言
enum Language {
ENGLISH, CHINESE
}
public class Words {
static Map<Language, String> example1 = new HashMap<Language, String>();
example1.put(Language.ENGLISH, "example");
example1.put(Language.CHINESE, "example_in_chinese");
static Map<Language, String> example2 = new HashMap<Language, String>();
example1.put(Language.ENGLISH, "example2");
example1.put(Language.CHINESE, "example2_in_chinese");
}
Words.example1.get(Language.ENGLISH);
只是為了減少打字錯誤的可能性。
uj5u.com熱心網友回復:
也許您可以使用責任鏈設計模式來確定哪種語言適合列印。
用代碼顯示需要很長時間,但我會給你提示。
迭代物件以找到具有給定下拉值的可列印語言。如果您找不到合適的列印語言,請忽略它。
https://www.tutorialspoint.com/design_pattern/chain_of_responsibility_pattern.htm
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/346364.html
上一篇:SonnarQube的問題:更改代碼以不從用戶控制的資料構建URL
下一篇:減少if陳述句的更好方法
