JUST WRITE

Wrapper Class 본문

Programing/Java

Wrapper Class

천재보단범재 2021. 9. 24. 17:54

Wrapper Class

Wrapper Class

Java에서 Primitive Type을 Object처럼 써야 될 경우가 있다.

이때 사용하는 Class가 Wrapper Class이다.

Wrapper Class는 java.lang 패키지에 속해 있어 따로 import 하지 않아도 된다.

Primitive Type Wrapper Class
char (16bit and unsigned) Character
byte (8bit and signed) Byte
short (16bit and signed) Short
int (32bit and signed) Integer
long (64bit and signed) Long
float (32bit and signed) Float
double (64bit and signed) Double
boolean (only true or false) Boolean

Primitive Type을 Object로 활용할 경우는 대표적으로 아래 2가지 경우이다.

  • Generic Class에서 Primitive Type을 사용할 경우
  • Java Collection에서 Primitive Type을 사용할 경우

Primitive Type / Wrapper Class 변환

Primitive Type에서 대응하는 Wrapper Class로 변환하는 방법은 2가지이다.

constructor를 이용하거나 factory method를 이용한다.

Java 9에서 constructor를 이용한 변환은 deprecated 되었다.

따라서 앞으로는 factory method를 활용해서 변환하는 것을 추천한다.

// constructor
Integer object = new Integer(1);

// factory method
Integer anotherObject = Integer.valueOf(1);

반대로 Wrapper Class에서 대응하는 Primitive Type으로 변환하는 Method가 있다.

int val = object.intValue();

Autoboxing and Unboxing

Java 5부터 Autoboxing과 Unboxing을 제공한다.

Method를 굳이 사용 안 해도 상황에 맞게 자동으로 대응하는 Type과 Class간 변환을 해준다.

boxing Primitive Type -> Wrapper Class 로 변환
unboxing Wrapper Class -> Primitive Type 로 변환
List<Integer> list = new ArrayList<>();
list.add(1); // autoboxing

Integer val = 2; // autoboxing

Integer value = Integer.valueOf(2); // boxing, Method활용, auto X


Integer object = new Integer(1); 
int val1 = getSquareValue(object); //unboxing
int val2 = object; //unboxing

public static int getSquareValue(int i) {
    return i*i;
}

[참고사이트]

728x90
반응형

'Programing > Java' 카테고리의 다른 글

StringBuilder vs StringBuffer  (0) 2021.09.30
Immutable Objects  (0) 2021.09.25
Static  (0) 2021.09.24
접근 제어자  (0) 2021.08.26
OOP  (0) 2021.08.25
Comments