Programing

화살표 연산자 '->'는 Java에서 무엇을합니까?

lottogame 2020. 6. 15. 08:16
반응형

화살표 연산자 '->'는 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

반응형