Henüz kimse Java 7 için backported Lambda İfadeleri vardır?
what kind of bytecode Java 8 produces from lambdas, Bu Konuyu okurken aklıma Java 5 piyasaya çıktığında zamanı geldi. O zamanlar dönüştürme bayt kodu ile İLGİLENİYORUZ 5 ile derlenmiş TOTEM 1.4 çalıştırmak için Retroweaver other tools vardı.
Henüz kimse Java 8 Lambda için böyle backporting bir araç yarattı?Java geliştiricileri Lambda zaten bugün kullanarak üretim kaliteli Java 7 JREs günü başlayacak, 8 GA sürüm Java için 6-12 ay beklemek zorunda kalmadan.
Burada olduğu gibi backporter nispeten kolay uygulanabilir olması neden benim analizi:
Java 8 Lambda yok gibi kullanın herhangi bir JVM özellikleri Java 7 olmazdı (örneğin invokedynamic
) ve java.lang.invoke.LambdaMetafactory
Sınıf ve bağımlılıkları gibi saf Java, dolayısıyla Olası uygulamak için bir 3. parti kütüphane. Böylece derlenmiş bayt kodu ile İLGİLENİYORUZ 8 olabilir yapılan kaçak TOTEM 7 ekleyerek bir 3. parti kütüphane ile bir kopyasını LambdaMetafactory (altında farklı bir paket) ve dönüştürme bayt kodu için kullandıkları metafactory yerine. Belki de java.lang.invoke.MagicLambdaImpl
ima ettiği gibi bypass Erişebilirlik kontrolleri için bazı sentetik sınıfları ve yöntemleri oluşturmak. Ya sonra lambda-etkin ilk Erken Erişim JDKs bazıları gibi bütün Lambda anonim iç sınıflar oluşturmak.
CEVAP
Lambda ifadeleri ve yöntemi referanslar kullanan dönüştürme Java 8 Java, Java 7, 6 ya 5 çalışmak için artık Retrolambda var. (Java 1.4 hataları kontrol etmek; daha fazla araştırma olmamıştır verdi.)
Neden bazı C# ifadeleri statik yönteml...
Neden kimse Java için mi kullanıyor?...
Neden bu Java 8 lambda derlemek için b...
Olay işleyicileri için lambda ifadeler...
Kullanarak lambda ifadeleri ile Varlık...