2013-04-05 79 views
3
public interface IMethodCallback 
{ 
    boolean Execute(); 
} 

... 

IMethodCallback callback = new IMethodCallback 
      { 
       boolean Execute() 
       { 
        return false; 
       } 
      }; 

這會導致錯誤。我如何在Java中做這樣的事情?匿名類錯誤

回答

2

你缺少括號()

IMethodCallback callback = new IMethodCsallback() { 
      // your impl method 
}; 
+1

我不明白爲什麼這是downvoted。世界某些地方稱'()'「括號。」 –

+2

+1這不應該downvoted! –

+0

@MattBall呵呵,我很驚訝,downvoter關心評論? – PermGenError

3

你錯過了構造函數的括號:

IMethodCallback callback = new IMethodCallback() 
{ 
    public boolean Execute() 
    { 
     return false; 
    } 
}; 
1
IMethodCallback callback = new IMethodCallback() //You have missed the parenthesis of constructor. 
{ 
    public boolean Execute() { 
     return false; 
    } 
}; 

,並遵循Java命名約定(駝峯

2

正如其他人所說,你錯過了在new IMethodCallback之後的圓括號。但是您還需要聲明您的實現方法Execute()public,因爲這是實現您的界面的方法。接口中的方法隱含地爲public

IMethodCallback callback = new IMethodCallback() 
{ 
    // Implements an interface; must be public 
    public boolean Execute() 
    { 
     return false; 
    } 
}; 
+0

接口中的方法是隱式公開的,實現者不能削弱訪問特權。 – rgettman

+0

+1啊,錯過了。 –