728x90
반응형

JAVA 260

[JAVA] Optional 기본 사용법

✅ 값이 있을 때Optional optional = Optional.of("Hello, World!");System.out.println(optional.get()); // 출력: Hello, World!✔ of()는 null이 아닌 값을 감쌀 때 사용하며, null을 넣으면 NullPointerException이 발생합니다.✔ get()을 사용하면 Optional에 저장된 값을 꺼낼 수 있음 ✅ 값이 없을 때 (Optional.empty())Optional optional = Optional.empty();System.out.println(optional.isPresent()); // 출력: false✔ empty()는 비어 있는 Optional을 생성함✔ isPresent()를 사용하여 값이 있는..

JAVA 2025.02.15

[JAVA] 확장 for문 null 체크

향상된 for문(enhanced for loop) 도 null 체크가 필요합니다.이유:향상된 for문은 내부적으로 Iterator를 사용하여 컬렉션을 순회합니다.따라서 null을 전달하면 null.iterator()를 호출하는 것과 동일하게 동작하여 NullPointerException 이 발생합니다. 예제 코드❌ 잘못된 코드 (NullPointerException 발생 가능)for (ResYhIftkUserManagersDTO mng : userchat.getManagers()) { // userchat.getManagers()가 null이면 여기서 NullPointerException 발생 System.out.println(mng.getEmail());}✅ 올바른 코드 (null 체크 추..

JAVA 2025.02.14

[JAVA] .stream() 을 사용했는데 순서가 유지되지 않는 경우

왜 순서가 깨질 수 있나요?Collectors.toMap:기본적으로 toMap은 내부적으로 HashMap을 사용합니다.HashMap은 요소가 삽입된 순서를 보장하지 않습니다. 따라서 스트림 소스의 순서가 HashMap을 거치면서 깨질 수 있습니다.values():HashMap의 values() 메서드는 순서를 보장하지 않기 때문에, 반환된 Collection의 순서도 불확실합니다.순서를 유지하려면 어떻게 해야 하나요?순서를 유지하려면 LinkedHashMap을 사용해야 합니다. LinkedHashMap은 삽입 순서를 보장합니다.이를 위해 toMap 대신 Collectors.toMap에 LinkedHashMap을 명시적으로 지정하면 됩니다. // 순서를 유지하며 exhlNm 리스트 생성 Lis..

JAVA 2025.01.23

[JAVA] boolean / Boolean

Java의 Boolean유형은 두 가지 종류가 있습니다:원시 부울( boolean)원시 유형인 boolean은 true또는 false의 가치만 가질 수 있습니다.이에 따라 null테스트할 수 없습니다.노력하지 않은 것으로 boolean간주 false됩니다.Wrapper 클래스 Boolean ( Boolean)Boolean은 Java의 Wrapper 클래스입니다.Boolean유형은 true, false미끼 null를 가질 수 있습니다.예를 들어, 데이터베이스 보기 결과에서 부울 값이 없는 경우 null로 처리할 수 있습니다. 특징boolean (Primitive) Boolean (Wrapper)초기값falsenullnull 저장 가능 여부불가능가능객체인지 여부아니오예   Primitive boolean: ..

JAVA 2025.01.12

[JAVA] BeanUtils.copyProperties 주의사항

BeanUtils.copyProperties는 기본적으로 두 번째로 만나는 프로퍼티 이름을 기준으로 값을 복사합니다.즉, 원본을 사용하고 서로 다른 클래스가 있어도, 프로퍼티 이름과 같은 경우에만 값을 복사합니다.분리된 항목만 복사할 수 있습니다.다시 말해, 두 개가 완전히 다른 클래스라면, 프로퍼티 이름과 유형이 일치하는 필드만 복사됩니다.그 외의 필드나퍼티는 복사할 수 없습니다. class A { private String name; private int age;}class B { private String name; private int age;}A a = new A();a.setName("John");a.setAge(25);B b = new B();BeanUtils.copyP..

JAVA 2025.01.08
728x90
반응형