1.泛型类定义的时候要在类后面加上<类型>,例如
调用或者继承的时候要指定类型
public class Container<K, V> {
private K key;
private V value;
public Container( K k, V v )
{
key = k; value = v;
}
public K getKey()
{
return(key);
}
public void setKey( K key )
{
this.key = key;
}
public V getValue()
{
return(value);
}
public void setValue( V value )
{
this.value = value;
}
}
2.泛型接口
和泛型类定义类似,形如
public interface Generator<T> { public T next(); }
3.泛型方法
public class Main {
public static < T > void out( T...args ) /\* 可变参数 \*/
{
for ( T t : args )
{
System.out.println( t );
}
}
public static void main( String\[\] args )
{
out( "findingsea", 123, 11.11, true );
}
}
4.泛型通配符
类型通配符一般是使用 ? 代替具体的类型实参。注意了,此处是类型实参,而不是类型形参!且Box<?>在逻辑上是Box<Integer>、Box<Number>...等所有Box<具体类型实参>的父类。由此,我们依然可以定义泛型方法,来完成此类需求。代码如下
public class GenericTest {
public static void main( String\[\] args )
{
Box<String> name = new Box<String>( "corn" );
Box<Integer> age = new Box<Integer>( 712 );
Box<Number> number = new Box<Number>( 314 );
getData( name );
getData( age );
getData( number );
}
public static void getData( Box<?> data ) /\* 参数是具体类型的Box<...> \*/
{
System.out.println( "data :" + data.getData() );
}
}