> Java > java지도 시간 > 이것을 인수로 람다 표현식으로 사용해 보세요.

이것을 인수로 람다 표현식으로 사용해 보세요.

Barbara Streisand
풀어 주다: 2025-01-12 07:10:42
원래의
581명이 탐색했습니다.

인수로서의 람다 표현식 개념:

  • 호환되는 대상 유형을 허용하는 메소드에서 람다 표현식을 인수로 전달할 수 있습니다.
  • 이는 실행 가능한 코드를 인수로 전달하여 코드를 더욱 표현력 있게 만들 수 있으므로 유용합니다.

목적 예시:

  • 람다 표현식을 사용하여 문자열 조작 기능(문자 반전, 대소문자 바꾸기, 공백을 하이픈으로 바꾸기)을 만듭니다.
  • 이러한 표현식은 함수를 적용하고 결과를 반환하는changeStr() 메서드에 전달됩니다.

기능적 인터페이스 구조:

  • 문자열을 받아들이고 반환하는 func(String str) 메서드를 사용하여 StringFunc 인터페이스를 정의합니다.

changeStr() 메서드 정의:
ChangeStr() 메소드는 두 개의 매개변수를 사용합니다:
StringFunc 유형의 매개변수(기능적 인터페이스).
조작할 문자열입니다.
이 메소드는 문자열에 인터페이스 함수를 적용하고 결과를 반환합니다.

람다 표현식 사용:
예 1: 문자열의 문자를 반전시켜 이를 반전 변수에 할당하는 람다 표현식

문자열을 반전시키기 위해 람다 표현식을changeStr()에 전달합니다.

예 2: 공백을 하이픈으로 바꾸고changeStr()에 직접 전달되는 람다 표현식.

예 3: 문자열에서 문자의 대소문자를 반대로 하고changeStr()에도 직접 전달되는 블록 람다 식.

전체 코드 예:
다음은 람다 표현식을 ChangeStr() 메서드에 전달하는 방법을 보여주는 전체 코드입니다.

interface StringFunc {
    String func(String str);
}

class LambdaArgumentDemo {
    static String changeStr(StringFunc sf, String s) {
        return sf.func(s);
    }

    public static void main(String args[]) {
        String inStr = "Lambda Expressions Expand Java";
        String outStr;
        System.out.println("Here is input string: " + inStr);

        // Expressão lambda para inverter a string
        StringFunc reverse = (str) -> {
            String result = "";
            for (int i = str.length() - 1; i >= 0; i--)
                result += str.charAt(i);
            return result;
        };

        // Passando a expressão lambda 'reverse' para o método
        outStr = changeStr(reverse, inStr);
        System.out.println("The string reversed: " + outStr);

        // Expressão lambda para substituir espaços por hífens
        outStr = changeStr((str) -> str.replace(' ', '-'), inStr);
        System.out.println("The string with spaces replaced: " + outStr);

        // Expressão lambda para inverter a caixa das letras
        outStr = changeStr((str) -> {
            String result = "";
            char ch;
            for (int i = 0; i < str.length(); i++) {
                ch = str.charAt(i);
                if (Character.isUpperCase(ch))
                    result += Character.toLowerCase(ch);
                else
                    result += Character.toUpperCase(ch);
            }
            return result;
        }, inStr);
        System.out.println("The string in reversed case: " + outStr);
    }
}

로그인 후 복사

예상 출력:

Here is input string: Lambda Expressions Expand Java
The string reversed: avaJ dnapxE snoisserpxE adbmaL
The string with spaces replaced: Lambda-Expressions-Expand-Java
The string in reversed case: lAMBDA eXPRESSIONS eXPAND jAVA

로그인 후 복사

관찰:
람다 식을 메서드에 대한 인수로 직접 전달하면 코드 유연성과 가독성이 높아집니다.
문자의 대소문자를 바꾸는 람다 식은 더 복잡하지만 여전히 메서드에 직접 전달할 수 있습니다. 일반적으로 더 복잡한 람다가 변수에 할당되는 것이 더 좋습니다.

Tente Isto asse uma expressão lambda como argumento

위 내용은 이것을 인수로 람다 표현식으로 사용해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿