2012-02-15 3 views
0

Java SDK 7이 설치되어 있고 Eclipse 3.7.1 Indigo를 사용하고 있습니다.Eclipse 3.7.1에서 Java 7 클로저 구문 사용

새 Java 7 구문을 사용하여 HashMap을 정의 할 때 제대로 작동합니다.

HashMap<Integer, Integer> hashMap = new HashMap<>(); 

하지만 클로저 구문을 사용하려고하면 이클립스에서 컴파일 오류가 발생합니다. 이것은 내가 컴파일하려고하는 것입니다.

public static <T> Collection<T> select(Collection<T> source, 
             {T=>Boolean} predicate) { 

    Collection<T> result = new ArrayList<T>(); 
    for (T o : source) { 
     if (predicate.invoke(o)) { 
      result.add(o); 
     } 
    } 
    return result; 
} 

구문이 잘못 되었습니까? 또는 나는 그것을 잘못하고 있냐? 그것은 이 자바 7이 될 것이라고을 희망 그것이 자바 8.

위한 계획 기능, 그러나 그것은 상처를 만들지 않았다 -

+0

또한 구문이 잘못되었습니다. 형식 매개 변수의 구문은 '술어 술어'일 뿐이며 술어의 사용은 호출 사이트의 실제 매개 변수 인 if (predicate.test (o))와 people이라는 전화 번호 이됩니다. 컬렉션은'select (people, p -> p.isHappy() && p.isSinging());와 같을 것이다. –

답변

9

자바 7은 폐쇄가 없습니다.