夥計, 我有一個與Java動態類加載稍有不同的問題。我必須將一個對象(允許類A的對象A1)傳遞給類B的另一個對象B1的構造函數,以便將A1的細節存儲在B1中。 B1不知道它正在接收什麼樣的對象。所以它只知道A1是一個對象。在JAVA中動態加載一個類 - 異常
現在我有類B中的函數,它接受對象C1並檢查它是否等於對象A1。所以基本上我要檢查
- 如果對象是C1型A級的也(其實我不是過去的這一點。)
- 如果對象內的值是相同的
我嘗試的解決方案:
當存儲內部B1對象A1,我還存儲類「A」的名稱,因爲對象B1僅獲取對象A1而不是類名A.
public static void testing(Object C1, String s) //testing is the function of B called by B1
{
try{
Class c = Class.forName(s);
if(C1 instanceof c) // This is throwing error stating c cannot be resolved to a type
{
//further checking
}
}catch (Exception e){ System.out.println(e);}
}
我一直在嘗試使用不同的代碼來獲取類型的實例來進行instanceof()比較,但我不成功。任何建議?
我甚至試過,但同樣的錯誤
ClassLoader classLoader = B.class.getClassLoader();
try{
Class class11 = classLoader.loadClass(s);
if (C1 instanceof class11)
{
}
}catch (Exception e){ System.out.println(e);}
如何進行的將是非常有幫助的任何指針!
解決方案是使用:isInstance代替的instanceof
,還附有此問題的其他問題。讓我用我的下面的評論更新它。現在,我必須比較B1中A1和C1兩個值中的一個值,比如說AGE。現在我該怎麼做?如果我嘗試函數或值,我會給我編譯器錯誤,因爲編譯器仍然不知道對象C1和A1的類類型。我也可以保存X1而不是A1。現在我可能需要檢查一個不同的屬性檢查,如ADDRESS。這大大改變了問題的層面。
無需在您的問題的答案。相反,只需接受解決您問題的答案(通過點擊答案左側的綠色複選標記)即可。此外,如果您在解決此問題後還有其他問題,請爲每個問題提出一個新問題。 – Grodriguez 2010-10-25 07:06:30