2013-02-01 15 views
3

我正在使用Project Lambdas的.map()方法從List對象中提取一些數據。之前,Jdk 1.8包含了Mapper接口,但現在我看到它的map方法獲取了Function接口。我下面的方法使用:Java 8 Map和Reduce不運行

List<Nut> nutList =new ArrayList<Nut>(); 

我用下面的方法來提取由吸氣劑領域的增值部分項目nutList和IM。

nutList.stream().map(n->n.getShell()) 

但是,上面的n參數的行爲就像一個對象,它不能訪問原始對象的方法。此用法通常在Mapper Functional界面中運行。

+1

應該工作。如果你寫'map(Nut :: getShell)' – irreputable

+0

@LouisWasserman這是純粹的FUD(而且是非常錯誤的),根本沒有用處。你爲什麼不解決這個問題呢? –

回答

1

在B75,下面的代碼編譯並運行正常:

List<Nut> nutList =new ArrayList<>(); 
    nutList.stream().map(n -> n.getShell()).forEach(System.out::print); 

也許你使用的是舊版本?

+0

謝謝,但我使用B75莫里斯。 –

+0

那很奇怪;我發佈的代碼編譯併爲我運行。檢查一下,如果它仍然失敗發佈確切的錯誤消息。 –