제네릭과 Wrapper Class

썩은요플렛's avatar
Jul 30, 2024
제네릭과 Wrapper Class
 

Generic이란?

  • 다양한 종류의 자료형(type)을 처리할 수 있는 기법 중 하나
  • 언제 타입을 결정하지 모를 때 자료형(type)을 구체적으로 명시하지 않고 ‘T’와 같은 기호를 써서 나타낸다.
  • 이후 객체 생성 시, T자리에 구체적인 자료형(type)을 써주면 된다
 
Generic을 사용할 때는 꺽쇠 괄호 ’<>’ 를 쓴다
 
 

기존의 방법

 
  • 기존의 방식은 객체를 Object타입으로 받아서 처리하는 방법을 사용했다.
 
public class Box{ private Object data; public void set(Object data) { this.data = data; } public Object get(){ return data; }
 
Box b = new Box(); b.set("Hello World"); // 문자열 객체 저장 String s = (String)b.get(); // Object 타입 String 타입 변환 b.set(new Integer(10)); // 정수 객체 저장 Integer i = (Integer)b.get(); // Object 타입 Integer 타입 변환
 
이 기능의 문제점은 항상 타입을 다운캐스팅을 받아야 하는 번거로움이 있다.
 
때문에 이 문제들을 해결하기 위한 것이 바로 제네릭(Generic)기법이다.
 
package ex13; class Box<T> { T data; } public class GenericEx01 { public static void main(String[] args) { Box<String> box1 = new Box(); Box<Integer> box2 = new Box(); box1.data = "1"; box2.data = 1; } }
 
  • 타입을 다운캐스팅을 하지 않고 문자열이나 정수를 저장할 때 T 대신에 String 혹은 Integer를 사용해주면 된다.
 

Wrapper class

 
Wrapper 클래스란 기본 데이터 유형(primitive data type)을 객체로 포장하여 제공하는 클래스입니다. 자바에서는 기본 데이터 유형(int, double, boolean 등)을 객체로 다루기 위해 Wrapper 클래스를 제공합니다.
예를 들어, int를 Integer 객체로 변환하거나 반대로 Integer 객체를 int로 변환할 수 있습니다. 이렇게 기본 데이터 유형을 해당하는 Wrapper 클래스로 감싸면 객체로서의 여러 기능을 사용할 수 있게 되며, 다양한 메서드와 기능을 이용할 수 있습니다. 이러한 Wrapper 클래스는 자주 사용되며, 주로 제네릭 프로그래밍, 컬렉션 프레임워크 등에서 활용됩니다.
간단한 Wrapper 클래스의 종류와 기본 데이터 유형:
  • Integer: int의 Wrapper 클래스
  • Double: double의 Wrapper 클래스
  • Boolean: boolean의 Wrapper 클래스
  • Character: char의 Wrapper 클래스
 
Share article

RottenYogurt's Development Blog