2017-10-15 2 views

Répondre

1

Je vais deviner vous venez d'un arrière-plan JavaScript?

Traditionnellement, Java n'avait pas vraiment de moyen de le faire. Au lieu de cela vous passerais un anonyme instance d'une interface, comme ceci:

interface Runner{ 
    public void run(); 
} 

class Fractal { 
    String name; 
    Runner initialize; 
    Fractal(String name, Runner setup) { 
     ... 
    } 
} 

Runner r = new Runner(){ 
    public void run(){ 
     // whatever 
    } 
} 

Fractal fractal = new Fractal("name here", r); 

Notez que Java fournit une interface Runnable que vous pouvez utiliser au lieu de créer votre propre, mais je voulais le préciser ici pour le rendre plus évident. Depuis Java 8, vous pouvez passer une référence à une fonction en tant que paramètre. C'est ce qu'on appelle une fonction lambda . Googling "Java lambda fonction" retournera une tonne de résultats.

De this answer:

public void pass() { 
    run(()-> System.out.println("Hello world")); 
} 

public void run(Runnable function) { 
    function.run(); 
} 

Selon la façon dont vous utilisez le traitement, vous pourriez être coincé avec la première approche mais, puisque je ne pense pas que l'éditeur de traitement prend en charge encore Java 8.

+0

Merci, ça marche très bien. et vous avez raison sur mon javascript. – Nikos