|
|||
|
|
자바 제너릭의 핵심은 우리가 사용하길 원하는 타입을 알려주면 자세한 것은 자바가 신경 써서 해 준다는 것이다.
public class Holder<T> {
private T t;
public Holder(T t) {
this.t = t;
}
public void set(T t) {
this.t = t;
}
public T get() {
return t;
}
public static void main(String[] args) {
Holder<Blog> holder = new Holder<Blog>(new Blog());
Blog myBlog = holder.get();
System.out.println("Object : " + myBlog);
}
}결과 Object : generic.Blog@c17164 제너릭을 이용하여 Tuple를 만들어 봤다. 2개이상의 리턴이 필요한 경우 유용하게 사용할 수 있다. public class Tuple {
public static <A, B> TwoTuple<A, B> get(A a, B b) {
return new TwoTuple<A, B>(a, b);
}
public static <A, B, C> ThreeTuple<A, B, C> get(A a, B b, C c) {
return new ThreeTuple<A, B, C>(a, b, c);
}
public static void main(String[] args) {
TwoTuple<String, Integer> result1 = Tuple.get("String", 5);
System.out.println("두개의 객체를 리턴 : " + result1.toString());
ThreeTuple<Blog, Post, Tag> result2 =
Tuple.get(new Blog(), new Post(), new Tag());
System.out.println("세개의 객체를 리턴 : " + result2.toString());
}
}
결과 두개의 객체를 리턴 : (Hi!!, 2) 세개의 객체를 리턴 : (generic.Blog@ca0b6, generic.Post@10b30a7, generic.Tag@1a758cb) 제너릭을 이용한 랜덤으로 요소 하나를 가져오는 클래스 구현
import java.util.ArrayList;
import java.util.Random;
public class RandomList<T> {
private ArrayList<T> storage = new ArrayList<T>();
private Random random = new Random(50);
public void add(T item) {
storage.add(item);
}
public T select() {
return storage.get(random.nextInt(storage.size()));
}
public static void main(String[] args) {
RandomList<String> rs = new RandomList<String>();
for(String each : ("The quick brown fox jumped "+
"over the lazy brown dog").split(" ")) {
rs.add(each);
}
for(int i=0; i<11; i++) {
System.out.print(rs.select() + " ");
}
}
}결과 lazy brown fox brown quick quick the brown the brown The |
||
최근 댓글