본문 바로가기
반응형

Develop/Java+Kotlin63

[Java] 인스턴스화 방지를 위해 private 생성자 이용하기 정적 메소드, 정적 필드만 담은 클래스는 때때로 유용하게 쓰일 수 있다. 사용하는 경우가 크게 세 가지가 있는데 예제를 통해 살펴보자. 📕 1. 기본 타입 값이나 배열 관련 메소드를 모은 클래스 ex: java.lang.Math, java.util.Arrays java.util.Arrays의 코드를 살펴보면 아래와 같다. public class Arrays { public static boolean isArray(Object o) { ...} public static Object[] asObjectArray(Object array) { ...} public static List asList(Object array) { ...} public static boolean isNullOrEmpty(T[] arr.. 2022. 2. 26.
[Java] EnumMap이란? 😏 개요 먼저 Enum에 대해 잘 모르면 아래 글을 먼저 읽어보길 바란다. https://yeonyeon.tistory.com/171 [Java] Enum에 대해 목차 1. Enum이란? 2. 사용 방법 3. 주요 메소드 4. Singleton과 Enum 1. Enum이란? 🤔 enumerance type = 열거형 JDK 1.5부터 생겨난 기능으로 열거체를 정의할 수 있는 클래스 비교 시 실제 값 뿐만 아니라.. yeonyeon.tistory.com Map을 선언했는데 구현체로 뭘 사용할지 고민이 들었다. 검색 중에 EnumMap이라는게 있길래 정리해본다. 🤩 EnumMap이란? Enum 타입만 key로 사용 가능한 특별한 Map Array를 이용하기 때문에 성능적으로 우수 해싱 과정이 필요 없어 Ha.. 2022. 2. 25.
[Java] ConcurrentModificationException 에러 ❗ java.util.ConcurrentModificationException 👉 객체를 동시에 수정하는 것이 불가능한데 동시 수정이 일어나는 경우를 감지 위 오류가 발생한 상황은 아래와 같다. public class Random { private static final List randomNumbers = new ArrayList(); static { for (int i = 1; i 2022. 2. 24.
[Java] Built-in Package 개요 우리는 String , Integer , System 같은건 import 없이도 사용할 수 있다. 세 개의 객체 모두 java.lang 에 포함되어 있는데 이런 import 없이 사용 가능한 패키지를 빌트인 패키지라고 한다. 그렇다면 이 빌트인 패키지의 동작 원리가 뭔데? 어떻게 import 없이 사용할 수 있을까? 에 대해서 궁금증이 생겨 포스팅하게 되었다. 패키지란? 관련된 클래스들을 모아 관리할 수 있게 함 네이밍 충돌 회피 클래스나 인터페이스 등의 접근 제어 패키지는 크게 Built-in packages와 User-defined packages로 나뉜다. Built-in packages : Java에서 우리 이미가 갖고 있는 다양한 선행 패키지들 User-defined packages : 사.. 2022. 2. 17.
[Java] toString() 파헤치기 목차 1. 개요 2. toString()의 목적 3. toString()의 구조 4. 코드의 개선 5. 결론 1. 개요 자동차를 나타내는 Car 클래스를 선언했다. Car 클래스에는 name과 position이 존재하고 아래와 같은 문자열로 나타내려고 한다. ex) name = "연로그", position = 3 👉 연로그 : --- 따라서 아래와 같은 객체를 만들고 toString()을 오버라이드 해주었다. public class Car { private final String name; private int position; public Car(String name) { this.name = name; this.position = 0; } public void go() { this.position++.. 2022. 2. 15.
[Java] Enum에 대해 목차 1. Enum이란? 2. 사용 방법 3. 주요 메소드 4. Singleton과 Enum 1. Enum이란? 🤔 enumerance type = 열거형 JDK 1.5부터 생겨난 기능으로 열거체를 정의할 수 있는 클래스 비교 시 실제 값 뿐만 아니라 타입까지 체크 가능 상수값이 재정의 되어도 다시 컴파일 할 필요 X 2. 사용 방법 🤩 enum Color { RED, YELLOW, GREEN, BLUE } 기본적으로 위와 같이 정의하고 Color.RED 와 같이 사용한다. 아래와 같이 특정 값을 저장할 수도 있다. enum Color { RED(3), YELLOW(21), GREEN(5), BLUE(1); private final int value; Color(int value) { this.value.. 2021. 12. 13.
[Java] org.opentest4j.AssertionFailedError: Expected ... to be thrown, but nothing was thrown. 에러 에러: org.opentest4j.AssertionFailedError: Expected java.lang.IllegalArgumentException to be thrown, but nothing was thrown. 📜 에러 설명 Exception 발생이 있을거라 생각을 했는데~ but nothing was thrown... 발생하지 않았다고 한다. 말그대로 Exception이 발생하지 않았기 때문에 발생한 문제라... 다양한 원인과 다양한 해결방법이 존재할 것이다. 🧨 원인 일단 나 같은 경우는 Exception 던진걸 try-catch로 감쌌기 때문에 실패했다.🤯 결론부터 말하자면 이 경우에도 해결 방법이 여러가지 있다. 예외 전파하기 테스트하는 메소드 변경 테스트 코드 변경 🔍 테스트 예제 원본.. 2021. 12. 7.
[Mockito] Mockito란? Mockito란? Java에서의 단위 테스트를 지원하기 위한 Mocking Framework Mock(가짜) 객체를 통해 테스트 코드 작성을 더 원활하게 해줌 설치 방법 Maven jar파일 다운로드 혹은 직접 설치 Gradle repositories { mavenCentral() } dependencies { testImplementation "org.mockito:mockito-core:3.+" } Mock 사용 예제 호출 되었는지 확인하기 import static org.mockito.Mockito.*; class TempTest { @Test void verify1() { List mockedList = mock(List.class); mockedList.add("one"); verify(mock.. 2021. 12. 2.
[Java] java.lang.UnsupportedOperationException java.lang.UnsupportedOperationException ... 에러 더보기 java.lang.UnsupportedOperationException at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:71) at java.base/java.util.ImmutableCollections$AbstractImmutableCollection.remove(ImmutableCollections.java:78) ... ❓ 에러 원인 Unsupported Opertation Exception. 지원되지 않는 작업을 요청했기 때문에 발생한 에러이다. 해당 에러가 발생한 코드는 아래와 같다. List list = List.of(.. 2021. 11. 21.
반응형