국비/Java

[15-1] Java - 제네릭

제발 취업하게 해주세요 2022. 4. 27. 19:56
제네릭 (Generic) <E> // element 요소
 *  컬렉션 안에서 다룰 타입들을 미리 지정해주는 역할 => 명시적으로 <Music>, <String>
 *  객체의 형변환을 사용할 필요가 없다
   => 내가 사용하고 싶은 타입만 사용할 수 있게 해준다.
 * 제네릭을 쓰는 이유??
  1. 저장할 타입의 제한을 두기 위해
  2. 매번 형변환하는 절차를 없애기 위해서
컬렉션 생성 시 제네릭 설정
 [표현법]
 ArrayList<E> list = new ArrayList<>();
 E 요소 자리에 설정하고 싶은 타입 설정
		ArrayList<Music> list = new ArrayList<>();
		
		System.out.println(list);
		
		// 값 추가 -> Music 이외의 값이 들어갈까?
		
		// list.add("스트링이 들어갈까?"); error
		
		list.add(new Music("에이셉", "스테이씨"));
		list.add(new Music("필마이리듬", "레드벨벳"));
		list.add(new Music("빛이되어줄게", "윤하"));
		list.add(new Music("거울", "팬레터"));
		
		System.out.println(list);
		
		Music m = list.get(0); // 강제형변환 안해도됨 
		
		System.out.println(list.get(0).getTitle());
		
		for(Music m1 : list) { // 향상된 for문
			System.out.println(m1);
		}