-4
좋은 프로그래밍 실습에 관한 간단한 질문입니다.자바 프로그래밍을 깨끗이하면 람다를 사용하여 메소드 입력 매개 변수를 생성하는 것이 좋지 않습니까?
성능을 제외하고 성능상의 차이점이 얼마나 될까요? 나는 문제를 지나치게 단순화하여 내 요지를 완전히 파악하고 있지만 완전히 잘못된 것입니까?
public void methodWithInputString(String data) {
// do something with data
}
public void methodThatCallsTheAbove() {
methodWithInputString(
// lambda with no input and a string as output
(() -> {
if (this.conditionIsTrue)
return "Condition is true";
else
return "Condition is false";
}).apply();
);
}
대안은 간단하게 다음과 같습니다
public void methodThatCallsTheAbove() {
if (this.conditionIsTrue)
methodWithInputString("Condition is true");
else
methodWithInputString("Condition is false");
}
나는 두 번째는 명백한/올바른 접근 방식은 이해하지만 첫 번째 하나를 사용하여 상황에 내 코드 청소기는 여전히 무의미한 일이 그 것이다합니다 할 것?
당신이 정의 된 동일한 방법으로 람다를 사용하여 자신을 발견하는 경우, 대신 메서드를 작성 할 수 있습니다. – Moira
물론, 어떤 경우에는 더 깨끗하다고 느껴질 수도 있습니다. 그러나 당신이 준 예제는 매우 나쁩니다. 우선, 컴파일 할 수 없습니다. '? :' – ZhongYu
가독성이 떨어졌습니다. 메서드 이름은 거의 자체적으로 주석 처리됩니다. 빈 람다는 실제 주석이 필요하며 쉽게 확장 할 수 없습니다. – Compass