화살표 연산자 '->'는 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에서 도입될 새로운 람다 표현식의 구문 중 일부입니다.요령 파악을 위한 온라인 튜토리얼이 몇 개 있습니다.다음 링크를 클릭해 주세요.기본적으로는->
는 파라미터(왼쪽)와 실장(오른쪽)을 구분합니다.
람다 식을 사용하는 일반적인 구문은 다음과 같습니다.
(Parameters) -> { Body }
어디서->
는 파라미터와 람다 식 본문을 구분합니다.
매개 변수는 메서드와 동일한 방식으로 괄호로 묶이고 람다 식 본문은 중괄호로 묶인 코드 블록입니다.
이것은, 기능하는 인터페이스를 실장하는 경우에도 편리합니다.
Runnable r = ()-> System.out.print("Run method");
와 동등하다
Runnable r = new Runnable() {
@Override
public void run() {
System.out.print("Run method");
}
};
이 화살표는 당신의 IDE 때문에 존재하는 것 같습니다.IntelliJ IDEA는 어떤 코드로 그런 일을 합니다.이것을 코드 폴딩이라고 합니다.화살표를 클릭하여 확장할 수 있습니다.
람다 표현이에요.
즉, listOfCars에서 arg0이 해당 목록의 항목 중 하나임을 의미합니다.이 아이템을 사용하여 대괄호 안에 무엇이 들어있든 상관없습니다.
이 예에서 그는 조건에 맞는 차량 목록을 반환할 것입니다.
Car.SEDAN == ((Car)arg0).getStyle();
Java 8에 추가된 람다 식에 대한 새 연산자
람다 표현식은 방법 쓰기의 짧은 방법입니다.
기능 인터페이스를 구현하기 위해 간접적으로 사용됩니다.
기본 구문 : (파라미터) -> {문;}
효과적인 람다 표현식을 쓰기 위한 몇 가지 기본 규칙이 있으며, 이를 알아야 합니다.
언급URL : https://stackoverflow.com/questions/15146052/what-does-the-arrow-operator-do-in-java
'IT이야기' 카테고리의 다른 글
"역할 컬렉션을 느릿느릿 초기화하지 못했습니다" 최대 절전 모드 예외 해결 방법 (0) | 2022.06.18 |
---|---|
64비트 정수용 log2 고속 컴퓨팅 (0) | 2022.06.18 |
Fortran은 많은 계산을 위해 C보다 최적화가 더 쉽습니까? (0) | 2022.06.18 |
&((구조명*)NULL -> b)는 C11에서 정의되지 않은 동작을 야기합니까? (0) | 2022.06.18 |
페이지를 로드할 때 Nuxt JS Vuex 설정 데이터가 실시간으로 반영되지 않음 (0) | 2022.06.17 |