看板 java 關於我們 聯絡資訊
推文的時間太久了.... 直接回 你把那一段改成這樣就好了 class Cat{ public void miew(){ //do something } } Cat cat=new Cat(); for(;;){ cat.miew(); } ※ 引述《GALINE (天真可愛CQD)》之銘言: : 如果我今天有個 anonymous class,我可以在宣告時直接呼叫他 : 的 method。像是: : new Object (){ : public void miew(){ : Object cat //do something : } : }.miew(); : 這樣的 code 是 OK 的。 : 可是如果我想在迴圈裡面使用這個 method 似乎就沒辦法 : Object cat = new Object (){ : public void miew(){ : //do something : } : }; : for(;;){ : cat.miew(); //這行會死掉 : } 沒有迴圈一樣會掛掉,這跟迴圈一點關係也沒有。 另外, new Object (){ public void miew(){ //do something } }; 這段的方法的意思是,你複寫一個Object,並加上miew方法 在指定給Object之前.... 也就是 Object cat = ...... 之前,他被視為一個,繼承自Object卻不是Object的物件 所以後面接.miew();可以叫用.miew();方法 但是在指派給Object cat之後,那個物件實體就被當成Object 又由於Object底下沒有miew()方法,所以編譯的時候就會回報錯誤 : 我有點好奇,有可能不透過 reflection 的方式,在迴圈裡面呼叫到 : 這個 anonymous class 的 miew() 嗎? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65