如果您已经定义了一个泛型类别,想要用这个类别来于另一个泛型类别中宣告成员的话要如何作?举个实例,假设您已经定义了下面的类别:
public class GenericFoo<T> { private T foo; public void setFoo(T foo) { this.foo = foo; } public T getFoo() { return foo; } }
您想要写一个包装类别(Wrapper),这个类别必须也具有GenericFoo的泛型功能,您可以这么写:
public class WrapperFoo<T> { private GenericFoo<T> foo; public void setFoo(GenericFoo<T> foo) { this.foo = foo; } public GenericFoo<T> getFoo() { return foo; } }
这么一来,您就可以保留型态持有者 T 的功能,一个使用的例子如下:
GenericFoo<Integer> foo = new GenericFoo<Integer>(); foo.setFoo(new Integer(10)); WrapperFoo<Integer> wrapper = new WrapperFoo<Integer>(); wrapper.setFoo(foo);