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

... 

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

Le résultat est erroné. Comment puis-je faire quelque chose comme ça en Java?Anonyme erreur de classe

Répondre

2

Vous crochets manquants ()

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

Je ne comprends pas pourquoi cela est downvoted. Certaines parties du monde appellent '()' "parenthèses". –

+2

+1 Cela ne devrait pas être en baisse! –

+0

@MattBall hehe, je suis surpris, downvoter soin de commenter? – PermGenError

3

Vous manquez les parenthèses du constructeur:

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; 
    } 
}; 

et suivre la convention de nommage java (Camel cas)

2

Comme d'autres l'ont mentionné, il vous manque Les parenthèses après new IMethodCallback. Mais vous devez également déclarer votre méthode d'implémentation Execute()public, car c'est la méthode implémentant votre interface. Les méthodes dans une interface sont implicitement public.

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

Les méthodes dans une interface sont implicitement publiques et les implémenteurs ne peuvent pas affaiblir les privilèges d'accès. – rgettman

+0

+1 Ah, raté ça. –