2017-02-17 10 views
0

私はJavaScriptを初めて使い、いくつかの練習の後で、Javaの匿名関数の概念を適用する方法があるのか​​疑問に残っています。それは可能ですか?私はこの質問に対して私が受けるかもしれない批判をよく知っているが、とにかく頼んでいる。 JavaScript匿名関数の例を以下に示します。 @FunctionalInterface Javaの8つのJavaScriptの匿名関数

public class Test { 
    @FunctionalInterface 
     public interface Func { 
     public String concat(String a, String b); 
    } 

    public static void main(String[] args) { 
     Func func = (a, b) -> a + b; 
     System.out.print(func.concat("Hello ", "World!")); 
    } 
} 
+1

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html – Ryan

+0

この質問は実際にはjavascriptに関するものではないので、 'javascript'タグを削除しました。 – Qix

+0

これは間違ったところです。質問はここで2つの言語を指します。 JavaScriptタグを削除する理由はありません。含まれるコード自体がJavaScriptコードなので –

答えて

0

は、まさにそれを行います。関数はJavaではそれ自身では存在できません。それはクラスでラップする必要があります。したがって、匿名関数に最も近いのは、匿名の内部クラスです。

int myResult = (new Object() { 
public int calc(int[] args){ 
     return args[0] + args[1]; 
    } }).calc(new int[]{ 1, 2}); 
System.out.println(myResult); 

これは、簡単に(機能的なインターフェイスで)ラムダ式を使用してJava 8を使用して行うことができます。

0

匿名内部クラスを使用して

var myResult = (function() { 
      return arguments[0] + arguments[1]; 
    }) (1,2); 
alert(myResult);