>  기사  >  Java  >  Java 8의 선택적 클래스: filter() 메서드를 사용하여 null일 수 있는 값을 필터링하는 방법

Java 8의 선택적 클래스: filter() 메서드를 사용하여 null일 수 있는 값을 필터링하는 방법

王林
王林원래의
2023-08-01 17:27:231460검색

Java 8의 Optional 클래스: filter() 메서드를 사용하여 잠재적으로 null 값을 필터링하는 방법

Java 8에서 Optional 클래스는 잠재적으로 null 값을 더 효과적으로 처리하고 NullPointerException 발생을 방지할 수 있는 매우 유용한 도구입니다. . Optional 클래스는 잠재적인 null 값을 조작하는 많은 메서드를 제공하며 중요한 메서드 중 하나는 filter()입니다.

filter() 메서드의 기능은 Optional 객체의 값이 존재하고 주어진 조건을 충족하는 경우 값이 존재하지 않거나 조건이 충족되지 않으면 Optional 객체 자체가 반환된다는 것입니다. 반환됩니다.

다음 코드 예제에서는 filter() 메서드를 사용하여 잠재적으로 null 값을 필터링하는 방법을 보여줍니다.

import java.util.Optional;

public class OptionalFilterExample {

    public static void main(String[] args) {
        String name = "John Doe";
        Optional<String> nameOptional = Optional.ofNullable(name);

        // 使用filter()方法过滤值为空的Optional对象
        Optional<String> filteredOptional = nameOptional.filter(n -> n.length() > 5);

        if (filteredOptional.isPresent()) {
            System.out.println("Name is longer than 5 characters");
        } else {
            System.out.println("Name is either null or shorter than 5 characters");
        }
    }
}

위 예제에서는 먼저 "John Doe" 값을 사용하여 null이 아닌 Optional 개체 nameOptional을 만듭니다. 그런 다음 filter() 메서드를 사용하여 조건 n -> n.length() > 5을 전달합니다. 이 조건은 문자열의 길이가 5보다 큰지 확인합니다. 조건이 충족되면 filter() 메서드는 동일한 값을 포함하는 Optional 객체를 반환하고, 그렇지 않으면 빈 Optional 객체를 반환합니다.

마지막으로 isPresent() 메서드를 사용하여 필터링된 Optional 개체에 값이 포함되어 있는지 확인하고 그 결과에 따라 해당 정보를 출력합니다.

실제 개발에서는 비어 있을 수 있는 값을 필터링해야 하는 경우가 많습니다. filter() 메소드를 사용하면 이 작업을 간결하게 수행할 수 있습니다. 다음은 목록에서 10보다 큰 정수를 필터링하는 방법을 보여주는 또 다른 예입니다.

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class OptionalFilterListExample {

    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(15);
        numbers.add(8);
        numbers.add(20);

        List<Integer> filteredNumbers = new ArrayList<>();

        for (Integer number : numbers) {
            Optional<Integer> optionalNumber = Optional.ofNullable(number);
            optionalNumber.filter(n -> n > 10).ifPresent(filteredNumbers::add);
        }

        System.out.println(filteredNumbers);
    }
}

위의 예에서는 먼저 일부 숫자가 포함된 정수, 숫자 목록을 만들었습니다. 그런 다음 for-each 루프를 사용하여 목록의 각 요소를 반복하고 이를 Optional 개체로 래핑합니다.

다음으로 filter() 메서드를 사용하여 10보다 큰 숫자를 필터링하고 ifPresent() 메서드를 사용하여 필터링된 숫자를filteredNumbers 목록에 추가합니다.

마지막으로 필터링된 모든 숫자가 포함된filteredNumbers 목록을 출력합니다.

Optional 클래스의 filter() 메서드를 사용하면 가능한 null 값을 보다 간결하게 필터링할 수 있어 번거로운 null 검사와 NullPointerException이 발생할 수 있는 상황을 피할 수 있습니다. 이는 우리의 코드를 더욱 강력하고 읽기 쉽게 만듭니다. 코드 품질과 개발 효율성을 높이기 위해서는 개발 시 Optional 클래스의 다양한 방법을 최대한 활용하는 것이 좋습니다.

위 내용은 Java 8의 선택적 클래스: filter() 메서드를 사용하여 null일 수 있는 값을 필터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.