L'équivalent de C# anonyme méthodes en Java?
En C#, vous pouvez définir les délégués de façon anonyme (même si ils sont rien de plus que du sucre syntaxique). Par exemple, je peux le faire:
public string DoSomething(Func<string, string> someDelegate)
{
//Do something involving someDelegate(string s)
}
DoSomething(delegate(string s){ return s += "asd"; });
DoSomething(delegate(string s){ return s.Reverse(); });
Est-il possible de passer ce type de code en Java? Je suis en utilisant le framework de traitement, qui a une très ancienne version de Java (il n'a pas de générique).
Vous devez vous connecter pour publier un commentaire.
Avant Java 8:
Le plus proche de Java a pour les délégués méthode unique pour les interfaces. Vous pouvez utiliser un anonyme intérieur de la classe.
Java 8 et ci-dessus:
Java 8 ajoute lambda expressions de la langue.
N'est pas exactement comme cela, mais Java a quelque chose de similaire.
Il appelle les classes internes anonymes.
Laissez-moi vous donner un exemple:
C'est un peu plus détaillé et nécessite une interface à implémenter,
mais d'autres que c'est à peu près la même chose
Votre exemple pourrait ressembler à ceci en Java, en utilisant anomymous les classes internes:
Puisque la question posée sur le Traitement spécifique de la réponse, il n'y a pas d'équivalent direct. Mais le Traitement utilise le Java 1.4 niveau de langue, et Java 1.1 introduit les classes internes anonymes, qui sont une approximation.
Par exemple :
De sortie :
Vous avez tous oublié ici C# déléguer tout d'abord - est thread-safe.
Ces exemples ne sont que pour un seul thread App..
La plupart des contemporains Applications sont écrites sur multithread concept..
Donc, pas une seule réponse est la réponse.
Il n'y a pas d'équivalent en Java