2014-11-06 85 views
12

我想調用MySortedSet的構造函數,它將Comparator c作爲參數。我如何修改這個來做到這一點?使用lambda中的Java流中的參數調用構造函數

public MySortedSet<E> subSet(E fromElement, E toElement) { 
    return list.stream() 
      .filter(x -> (list.indexOf(x) <= list.indexOf(fromElement) 
        && list.indexOf(x) < list.indexOf(toElement))) 
      .collect(Collectors.toCollection(MySortedSet<E> :: new)); 
} 

回答

20

如果要將其他捕獲的值作爲參數傳遞,則不能使用方法引用。你將不得不使用lambda表達式來代替:

MySortedSet<E> :: new 

=>

() -> new MySortedSet<E>(c) 
相關問題