2016-03-24 13 views
6

Java 8 özelliklerinde yeniyim ve bu aptalca bir soru olabilir ama bu noktada takılıyorum.java lambdaj 'variable_name' değişken hataya çözümlenemiyor

Eclipse'de aşağıdaki kodu çalıştırmaya çalışıyorum ancak derleme zamanı hatası veriyor.

import java.util.ArrayList; 
import java.util.Collection; 
import java.util.List; 
import java.util.function.Predicate; 
import java.util.stream.Stream; 
import ch.lambdaj.Lambda; 

public class LambdajTest { 

    public static void main(String[] args) { 

     List list = new ArrayList(); 
     list.add(1); 
     list.add(3); 
     list.add(8); 
     list.add(10); 
     list.add(16); 

     int sum = list.stream().filter(p -> p > 10).mapToInt(p -> p).sum(); 
    } 

} 

Hata şudur: - p, bir değişkene çözümlenemiyor. Sınıf yolunda lambdaj 2.3.3 jar'ı ekledim.

Lütfen çözüm sağlayın. Şimdiden teşekkürler.

+0

P lambda ifadesinde int olarak bildirimde bulunmanız gerekir – ryekayo

+1

Kodunuzun LambdaJ olması gerekmez. LambdaJ temel olarak güzel toplama yöntemleri sağlayan ve Java'yı hedefleyen bir kütüphanedir. <8. Java 8 Lambdas ile ilgisi yoktur. –

cevap

4

sorun JVM bir ham koleksiyonunu kullandığınız olarak nesnenin p türüdür bilmiyor olmasıdır.

Değişim

List list = new ArrayList();

List<Integer> list = new ArrayList<>();

için JVM şimdi Integer nesneler topluluğu üzerinde akışını gerçekleştirerek anlar.

+0

Düşündüğümden daha mantıklı. – ryekayo

İlgili konular