
DsSequence::filter 메서드의 lambda 함수에서 this 참조를 사용할 수 없는 이유는 Java의 람다 함수 내부에서 this 참조를 사용할 수 없기 때문입니다.
람다 함수 내부에서 this 참조를 사용하려면 람다 함수를 익명 클래스로 선언하거나 람다 함수에 인자로 this를 전달하는 방법을 사용할 수 있습니다.
#hostingforum.kr
java
// 익명 클래스를 사용하는 방법
DsSequence sequence = ...;
sequence.filter(new Predicate() {
@Override
public boolean test(Object o) {
return (o instanceof YourClass) && ((YourClass) o).getYourField() == 1;
}
});
// 람다 함수에 this를 전달하는 방법
DsSequence sequence = ...;
sequence.filter(o -> this.test((YourClass) o));
// 람다 함수에 인자로 this를 전달하는 방법
DsSequence sequence = ...;
sequence.filter(this::test);
위의 예제에서 test 메서드는 YourClass의 인스턴스를 파라미터로 받습니다.
#hostingforum.kr
java
public class YourClass {
private int yourField;
public int getYourField() {
return yourField;
}
}
위의 예제에서 test 메서드는 YourClass의 인스턴스를 파라미터로 받고, 필터링 조건을 검사합니다.
#hostingforum.kr
java
public class YourClass {
private int yourField;
public int getYourField() {
return yourField;
}
public boolean test(YourClass yourClass) {
return yourClass.getYourField() == 1;
}
}
위의 예제에서 test 메서드는 YourClass의 인스턴스를 파라미터로 받고, 필터링 조건을 검사합니다.
2025-06-28 05:54