हाय मैं सिर्फ यह जांचना चाहता हूं कि मेरा कार्यान्वयन और समझ सही है या नहीं। मैं एक प्रकार के नेस्टेड लैम्ब्डा को एनॉन क्लास में बदलने की कोशिश कर रहा हूं Function<Integer,Function<Integer,Function<Integer,Integer>>> h = x -> y -> z-> x + y + z

क्या यह एक एनॉन वर्ग के रूप में इसका प्रतिनिधित्व करने का उपयुक्त तरीका है?

Function<Integer,Function<Integer,Function<Integer,Integer>>> h = new Function <> ( 
int x, y;
@Override 
Function<Integer,Function<Integer,Integer>> apply ( Integer x)

              return y-> z-> (x+y+z);
   }
};
0
L m 14 जून 2020, 15:13

1 उत्तर

सबसे बढ़िया उत्तर

एक लैम्ब्डा को एक अनाम फ़ंक्शन में बदलने के लिए, आपको इसे थोड़ा-थोड़ा करके विघटित करना चाहिए, प्रत्येक -> एक अनाम फ़ंक्शन इंस्टेंटेशन से मेल खाता है, यह कुछ इस तरह समाप्त होगा:

var h = new Function<Integer,Function<Integer,Function<Integer,Integer>>>() {
  public Function<Integer,Function<Integer,Integer>> apply(Integer x) {
    return new Function<Integer,Function<Integer,Integer>>() {
      public Function<Integer,Integer> apply(Integer y) {
        return new Function<Integer,Integer>() {
          public Integer apply(Integer z) {
            return x + y + z;
          }
        };
      }
    };
  }
};
2
Victor Noël 14 जून 2020, 12:26