2012-12-19 88 views
0

可能重複:
Cast via reflection and use of Class.cast()如何轉換爲指定的類類型?

我有關於java編程的問題。我希望能夠通過傳遞給函數的字符串參數來選擇投射類型。正如你所看到的,有一個主類必須被轉換成子類型。這些子類型應該由用戶指定。我們如何做到這一點?

public void casting(String subClassCast) 
{ 
     MainClass mainClass = (subClassCast) MainClassFactory.get(); 
} 
+0

你爲什麼要這麼做?如果你在編譯時不知道要投什麼,那麼沒有理由去演員。 – Jesper

回答

0

你可以這樣做:

MainClass mainClass = Class.forName(subClassCast).cast(MainClassFactory.get()); 

但我不知道這是一個好主意。

2

演員在寫作時什麼都不做。

演員提供用於分配超的目的是一個子類參考

Object obj = a.toString(); 
String str = (String) obj; // The compiler can't check that at runtime obj will be 
          // a String, so the programmer "forces" the compiler to 
          // allow the assignation 

需要打石膏,但在

Object obj2 = (String) obj; 

投什麼也不做(除了扔ClassCastException如果obj不是一個字符串)。

相關問題