例一
package cn.xy.test;
public class GenericDao
{
public <T> void add(T t)
{
}
public <T> T getModelById(int id)
{
return null;
}
}
这个类中泛型方法被常规使用,但两个方法之间的T没有联系和相互约束。
例二
package cn.xy.test;
import java.util.Set;
public class GenericDao2<T>
{
public void add(T t)
{
}
public T getModelById(int id)
{
return null;
}
public Set<T> getModels(String conditions)
{
return null;
}
// 泛型类型不能被静态方法使用
//public static void update(T t){}
// 普通泛型方法的写法允许
public static <T> void update(T t)
{
}
}
GenericDao2<Person> g = new GenericDao2<Person>();
Person p = g.getModelById(1);