화살표 연산자 '->'는 Java에서 무엇을합니까?
일부 코드를 통해 사냥하는 동안 화살표 연산자를 발견했습니다. 정확히 무엇을합니까? Java에는 화살표 연산자가 없다고 생각했습니다.
return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
return Car.SEDAN == ((Car)arg0).getStyle();
});
세부 정보 : Java 6, Apache Commons Collection, IntelliJ 12
업데이트 / 답변 : IntelliJ 12는 람다를 지원하고 술어를 "폴딩"하고 람다로 표시하는 Java 8을 지원합니다. 아래는 "접히지 않은"코드입니다.
return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
public boolean evaluate(Object arg0) {
return Car.SEDAN == ((Car)arg0).getStyle();
}
});
Java 8에서 소개 될 새로운 람다 식의 구문 중 일부입니다. 여기에 대한 링크 가 있습니다. 기본적으로 ->
매개 변수 (왼쪽)는 실제 표현식 (오른쪽)과 구분됩니다.
이 화살표는 IDE 때문에 존재한다고 생각합니다. IntelliJ IDEA는 일부 코드로 이러한 작업을 수행합니다. 이것을 코드 접기라고합니다. 화살표를 클릭하여 확장 할 수 있습니다.
인터페이스를 구현하려는 경우에도 유용합니다.
Runnable r = ()-> System.out.print("Run method");
에 해당
Runnable r = new Runnable() {
@Override
public void run() {
System.out.print("Run method");
}
};
람다 식입니다.
이는 listOfCars에서 arg0이 해당 목록의 항목 중 하나임을 의미합니다. 그 항목으로 그는 괄호 안에 무엇이든지-> 할 것입니다.
이 예에서는 조건에 맞는 자동차 목록을 반환합니다.
Car.SEDAN == ((Car)arg0).getStyle();
Java 8에 추가 된 람다 식의 새로운 연산자
람다 식은 메서드 작성 의 짧은 방법입니다. 기능적 인터페이스
를 구현하는 데 간접적으로 사용됩니다.
주요 구문 : (매개 변수)-> {statement; }
효과적인 람다 식 작성에 대한 몇 가지 기본 규칙 이 있습니다.
참고 URL : https://stackoverflow.com/questions/15146052/what-does-the-arrow-operator-do-in-java
'Programing' 카테고리의 다른 글
Bootstrap 열을 여러 행으로 확장하려면 어떻게해야합니까? (0) | 2020.06.15 |
---|---|
xargs로 쉘 함수 호출 (0) | 2020.06.15 |
장고에서 일대 다 관계를 표현하는 방법 (0) | 2020.06.15 |
ARM 아키텍처는 x86과 어떻게 다릅니 까? (0) | 2020.06.14 |
왼쪽 전환에서 CSS 3 슬라이드 인 (0) | 2020.06.14 |