아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
탈퇴한 사용자
탈퇴한 사용자19.02.25

자바 기초질문 드려요..

자바에보면 <string, string>이런식으로 뜨는데 <>이게 어떤의미를 하는건지 모르겠어요

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 점잖은호랑나비234
    점잖은호랑나비23419.02.26

    제네릭이라고 합니다. 오픈 튜토리얼스에 잘 정리되어 있어 해당 내용을 옮겨 보여드립니다.

    https://opentutorials.org/module/516/6237

    제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 말이 어렵다. 아래 그림을 보자.

    위의 그림은 아래의 코드를 간략화한 것이다.

    package org.opentutorials.javatutorials.generic;

    class Person<T>{

    public T info;

    }

    public class GenericDemo {

    public static void main(String[] args) {

    Person<String> p1 = new Person<String>();

    Person<StringBuilder> p2 = new Person<StringBuilder>();

    }

    }

    그림을 보자. p1.info와 p2.info의 데이터 타입은 결과적으로 아래와 같다.

    • p1.info : String

    • p2.info : StringBuilder

    그것은 각각의 인스턴스를 생성할 때 사용한 <> 사이에 어떤 데이터 타입을 사용했느냐에 달려있다.

    클래스 선언부를 보자.

    public T info;

    클래스 Person의 필드 info의 데이터 타입은 T로 되어 있다. 그런데 T라는 데이터 타입은 존재하지 않는다. 이 값은 아래 코드의 T에서 정해진다.

    class Person<T>{

    위 코드의 T는 아래 코드의 <> 안에 지정된 데이터 타입에 의해서 결정된다.

    Person<String> p1 = new Person<String>();

    위의 코드를 나눠보자. 아래 코드는 변수 p1의 데이터 타입을 정의하고 있다.

    Person<String> p1

    아래 코드는 인스턴스를 생성하고 있다.

    new Person<String>();

    즉 클래스를 정의 할 때는 info의 데이터 타입을 확정하지 않고 인스턴스를 생성할 때 데이터 타입을 지정하는 기능이 제네릭이다.