728x90
반응형
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
static int a1;
public static void doProduct(Integer a){
a1 = a * a;
}
public static void doString(StringBuilder s) {
s.append(" " + s);
}
public static void main(String[] args) {
String [] arr = {"Hi", "How", "Are", "You"};
List<String> arrList = new ArrayList<>(Arrays.asList(arr));
if (arrList.removeIf((String s) -> {return s.length() <= 2;})) {
System.out.println(s + "removed");
}
}
}
문제 원인
s 변수는 System.out.println 문 안에서 사용되고 있지만, 해당 범위에서 정의되지 않음.
s 는 람다식 안에서만 유효한 지역 변수로 선언.
따라서, System.out.println(s + "removed");에서 s를 찾을 수 없다는 컴파일 에러가 발생.
'IT개발 > Java' 카테고리의 다른 글
[Java] 2차원 배열 (0) | 2025.01.23 |
---|---|
[Java]내가 생각하는 중요한 자바 용어 정리2 (0) | 2024.10.29 |
[Java] IOException 발생원인(eclipse) (0) | 2024.09.28 |
[Java]내가 생각하는 중요한 자바 용어 정리 (2) | 2024.09.28 |
[Java] 배열 생성 + 입력 + 두 배열 합치기 - 콘솔 프로그램 (0) | 2024.07.15 |