Je suis plutôt nouveau à Java, mais je dois écrire quelque chose comme ce code C # (c'est un prototype dactylographié à la main pour illustrer ce dont j'ai besoin) peu d'explication. J'utilise asynctack code> dans Android et appelant un processeur extérieur classé, mais j'aimerais que cela puisse signaler afin que je puisse
publicationProgress code>. Je préfère ne pas mettre l'interface sur mon
asyncktask code> p> p>
4 Réponses :
à l'aide d'une classe de support: Je ne vais pas vous suggérer d'utiliser des cours anonymes parce que je les trouve assez verbeux jusqu'à ce qu'une syntaxe slicker ne soit pas disponible mais C'est juste une question de goût personnel, je finis à perdre mon auto entre les accolades lorsque je les utilise .. p> p>
en Java, vous utilisez des classes anonymes implémentant des interfaces. Ceci est un peu plus sévère, mais cela fonctionne simplement bien:
interface MyAction { void doit(String str); } class WorkerClass { void doWork(MyAction action); } void main(String args[]) { WorkerClass worker = new WorkerClass(); worker.doWork(new MyAction { public void doit(String e) { System.out.println("Progress" + e) } }); }
@ Fr.fouad oups, j'ai codé en C # depuis trop longtemps :) merci!
Les fermetures ne sont pas encore prises en charge, vous devez utiliser une classe interface et une classe intérieure anonyme.
Il est possible avec Java 8. Voir ma réponse à la question en double:
https://stackoverflow.com/a / 26776520/1206998 p>
Utilisez une fonction comme argument: p> appel p>
Dupliqué possible de Fonctions de rappel en Java