我正在開發一個用java編寫的項目,對於語言和麪向對象來說是相當新的。我的困境是我想根據變量的值從特定的類中執行任務/功能。JAVA:基於變量值的調用類方法
這是我試圖實現的一種。
class mainClass{
String option;
public static void main(String[] args) {
mainClass main = new mainClass();
}
mainClass(){
secondClass sC = new secondClass();
thirdClass tC = new thirdClass();
switch (option){
case "1" :
sC.doSomething();
case "2" :
tC.doSomething();
}
}
}
class secondClass{
void doSomething(){
System.out.println("1");
}
}
class thirdClass{
void doSomething(){
System.out.println("2");
}
}
的原因,我不希望這樣做,是因爲如果我想添加一個第四,第五,第六類等等......我將不得不更新交換機。
我嘗試使用散列圖。我在哪裏給secondClass分配了「1」的密鑰。但是後來我不得不拋出這個對象,但是這使我不知道什麼類需要事先被調用,這讓我很頭痛。
於是我試圖用這樣一個HashMap, HashMap<String, Object> map = new HashMap<String, Object>();
,我可以那麼就map.get(「1」),但是現在我不能調用任何的方法有問題的類。
如果我需要使用大型開關語句,我會,但我正在積極尋求更有效的選擇。
接口,繼承和方法覆蓋 - 學習它們。 – james
如果他們都有一個'doSomething()'方法,爲什麼不讓它們都擴展一個公共基類,或者實現一個通用接口?另外,你需要'switch'中的'break'語句。 –
是的,我知道這只是我正在尋找的那種事物的快速模擬。沒有擴展doSomething()的原因是doSomething()在每個實例中都不相同。謝謝@詹姆斯我會着眼於壓倒一切!我想過繼承,但正如前面所述,每個doSomething()方法都不同。 –