본문 바로가기

Java

(4)
[Java] Collection 과 Collections Java에서 Collection과 Collections는 매우 유사한 이름을 가지고 있어 헷갈리기 쉽다. 하지만 두 개념은 서로 다른 역할을 하며, 이를 정확히 이해하는 것이 중요하다. 이번 글에서 Collection과 Collections의 차이를 살펴보자.Collection이란?Collection은 Java 컬렉션 프레임워크의 최상위 인터페이스로, 여러 개의 객체를 담을 수 있는 컨테이너 역할을 한다. Collection 인터페이스를 직접 구현하는 경우는 거의 없으며, 주로 이를 상속한 하위 인터페이스(List, Set, Queue 등)를 사용한다.Collection 인터페이스의 주요 메서드public interface Collection extends Iterable { int size(); ..
Java Modifier(제어자) 제어자란제어자는 클래스, 생성자, 메서드, 필드에 추가되는 키워드로 기능을 추가하며 타깃의 의미를 변경한다. 제어자는 일반적으로 접근제어자와 비접근 제어자 두 그룹으로 분리된다. 접근 제어자public, protected, private 잘 알려진 제어자로 이 키워드는 클래스, 생성자, 필드, 메서드 등에 적용될 수 있으며 적용되는 타깃에 대한 접근을 제어하는 역할을 한다.생성자 측면에서는 접근 제어자만 적용이 가능하며 제어자가 존재하지 않으면 package-private이 된다. 비접근 제어자비접근 제어자는 클래스, 메서드, 필드 기준 으로 나누어서 설명할 수 있다. 클래스 기준abstract - 클래스를 인스턴스화될 수 없는 클래스로 만드는 제어자 final - 클래스 구현을 마무리해 상속할 수 없게..
Java Reflection(3) Method - 클래의 메서드에 접근클래스의 모든 메서드들은 java.lang.reflect.Method타입의 객체로서 표현된다. Class.getDeclaredMethods()모든 메서드를 반환값으로 출력한다.Class.getMethod()super 클래스에서 상속된 메서드와 인터페이스를 포함한 모든 public 메서드를 출력한다.Method의 PropertiesMethod객체의 함수들 중 몇개만 알아보자. Method.getName(), Method.getSimpleName()클래스에 사용된 메서드의 이름을 문자열로 추출할 수 있다. (package 명 포함/ 미 포함) Method.getReturnType()특정 메서드의 반환 타입을 나타내는 클래스 객체를 알 수 있다. Method.getParam..
Java - unchecked casting Collection collection = (Collection) new HashMap();  위 코드를 그대로 작성하면 아래와 같은 경고 메시지를 띄울 뿐 컴파일 에러를 발생 시키지 않는다. Unchecked cast: 'java.util.HashMap' to 'java.util.Collection'  Collection과 HashMap은 서로 아무런 관계가 없는 객체임에도 명시적 형변환이 가능한 것 처럼 표시된다. 하지만 이러한 형변환은 런타임 환경에서 아래와 같은 에러를 발생시키게 된다.Exception in thread "main" java.lang.ClassCastException: class java.util.HashMap cannot be cast to class java.util.Colle..