我有一個JSP文件這段代碼:爲什麼我不能實例化這個變量?
// MainHomePage pageApp = new MainHomePage(session);
String pageValue=request.getParameter("page");
if((pageValue!=null) && (pageValue.compareTo("1")==0)) {
MainHomePage pageApp = new MainHomePage(session);
} else if((pageValue!=null) && (pageValue.compareTo("2")==0)) {
MainAffittaAppartamenti pageApp = new MainAffittaAppartamenti(session);
} else {
MainHomePage pageApp = new MainHomePage(session);
}
pageApp.someMethod();
如果我不上第一行它說(約pageApp)刪除註釋「無法找到符號」 ......爲什麼呢?無論如何,if-else都會實例化它。我錯了什麼?乾杯
eheh,問題是MainAffittaAppartamenti不是MainHomePage的子類:)所以有一個解決方案,如果他們不是類/子類? – markzzz 2010-11-16 14:02:58
@markzzz - 除非您有權訪問源代碼,否則不是一件容易的事。如果他們不共享相同的接口或抽象基類,那麼你不能在共享變量上調用'someMethod'。如果你有權訪問源代碼,你可以用'someMethod()'或其他創建一個接口,並設置兩個類來實現該接口,然後用該接口聲明'pageApp'。 – 2010-11-17 19:41:18
@markzzz - 另外,這些可能已經有一個共享的基類 - 這就是我所說的「你應該找到......這種變量的抽象類型,這兩種類型共享」。如果存在且該類型已經具有'someMethod()',那麼您將使用該類型進行聲明。 – 2010-11-17 19:43:19