SORU
28 Kasım 2012, ÇARŞAMBA


Nasıl Java 8 lambda parametre olarak alan bir metod tanımlamak mı?

Java 8 yöntemler Lambda ifadesi olarak oluşturulabilir ve referans (kaputun altında küçük bir çalışma ile) geçirilebilir. Örnekler Lambda ve yöntemler, ama bir yöntemi parametre olarak lambda alarak yapmak için nasıl örnekler ile oluşturulmuş kullanılan online var. Bunun için sözdizimi nedir?

MyClass.method((a, b) -> a b);


class MyClass{
  //How do I define this method?
  static int method(Lambda l){
    return l(5, 10);
  }
}

CEVAP
28 Kasım 2012, ÇARŞAMBA


Lambda Ara-site tamamen bir yapısı vardır: uygun yöntemi ile bir Arayüz kabul yerine lambda Lambda alıcı bir yer olduğunu bilmeniz gerekir.

Diğer bir deyişle, sizin belirlediğiniz ya da (tek bir yöntem ile bir arayüz gibi) istediğiniz tam olarak kabul eder ve döndürür işlevsel bir arayüz kullanın.

Bu Java için 8 sık kullanılan java.util.function arabirim türleri kümesi (JavaDoc hakkında ipucu için Maurice Naftalin sayesinde) ile birlikte gelir.

Bu özel kullanım için java.util.function.IntBinaryOperator ** 7 bu şekilde yazabilir misin yani a single int applyAsInt(int left, int right) method ile

static int method(IntBinaryOperator op){
    return op.applyAsInt(5, 10);
}

Ama sadece kendi arayüzü tanımlamak ve bu gibi kullanabilirsiniz:

public interface TwoArgIntOperator {
    public int op(int a, int b);
}

//elsewhere:
static int method(TwoArgIntOperator operator) {
    return operator.op(5, 10);
}

Kendi arayüzü kullanarak daha net bir şekilde niyetini gösteren bir isim olabilir avantaj.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BASS212M

    BASS212M

    15 Temmuz 2009
  • Exalto_Gamer

    Exalto_Gamer

    15 EKİM 2014
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006