본문 바로가기
  • 개발자를 꿈꾸는 중

Java/Generic4

Generic <?> - 제네릭 와일드 카드 제네릭을 사용하는 이유가 데이터 형식에 의존/영향받지 않고 하나의 코드 구현으로 여러 데이터 타임들을 다루기 위해서이다. 암묵적으로 아래의 표대로 사용이 된다. 암묵적이라는 말 그대로 굳이 저렇게 사용안하고 마음대로 정해 사용해도 무관하다. 하지만 나처럼 이마저도 귀찮아서 더욱 간편한 것을 바라는 마음이 생기기도 한다. 이 경우 사용할 수 있는게 "와일드 카드 "이다 이름만 보면 되게 생뚱맞지만 이것은 아주 유용한 아이이다. 안에 ?를 넣어 사용하는데 이렇게 하면 모든 클래스나 인터페이스 타입이 올 수 있다. 즉 아무거나 넣으면 된다. 예시코드를 보여주겠다. @PutMapping("/book/{id}") public ResponseEntity update(@PathVariable Long id, Book.. 2022. 8. 15.
Generic 타입 범위 제한 제네릭 타입에는 Object 메서드만 사용이 가능해서 기능이 매우 한정적이다. ==> 상속 적용 종류 제네릭 클래스 타입 제한 문법구조 제네릭 메서드타입 제한 클래스, 인터페이스 상관없이 에서 T 다음으로 extends 클래스명/인터페이스명을 넣어준다. 예: public void met(T t){} 혹은 interface MethodInterface{public abstract void drive(); } public ...... 메서드 매개변수로서의 제네릭 클래스 타입 제한 A 2022. 5. 10.
Generic 메서드 정의 리턴 타입/매게 변수 타입을 제네릭 타입으로 지정 예) public T genericMethod(T t){ return t; } public void genericMethod2(K k, V v){ //코드 } 호출 참조객체.메서드이름(매개변수) 예) A a = new A(); int a = a.genericMethod(40); 제한 제네릭 메서드 내부에서는 Object 클래스 메서드만 사용이 가능하다. 즉, 나중에 실제 매개변수 타입이 Integer 나 String이라 하여도 Integer.parseInt() 나 length()는 입력할 수 없다. 예) class GenericMethod{ publicvoid b(T t){ System.out.println(t.length()); // 오류발생 } .. 2022. 5. 10.
Generic - [제네릭] 기본 어디에 쓰이나? 바나나가 있다고 가정해보자. 이 경우 우리는 바나나를 저장할 수 있는 클래스를 만든다. 하지만 그 클래스는 바나나만 다루기 때문에 수박이 생길 경우 같이 관리할 수 없다. 물건의 가짓수 만큼 클래스를 생성해야 된다는 의미이다. 이처럼 여러가지 물건들을 유연하게 관리하기 위해 사용하는 것이 제네릭이다. 정의 클래스/인터페이스: 클래스명/인터페이스명 다음에 입력 객체 생성 클래스명 다음에 사용자가 필요한 실제 제네릭 타입을 적어준다 ## 제네릭은 클래스 내에 사용되는 타입을 객체 생성 때 정의한다. 활용 바나나, 수박 클래스를 생성하고 각각의 객체를 추가해 가져왔다. 2022. 5. 9.
반응형