1 class<T> 用于反射之中 表示一定要有一个类型(泛型)
1.1 实现接口时候,必须传入一个泛型public interface Comparable<T> { public boolean compareTo(T other);}
Comparable 接口包含一个类型参数 T
public class String implements Comparable<String> { public boolean compareTo(String other){
}}
1.2 这里指定了两个比较的class类型必须一致
public T max(T t1, T t2) { if (t1.compareTo(t2) > 0) return t1; else return t2;}
String s = max("moo", "bark");
1.3//Class<T>表示一个类名,T[] T数组的使用
public<T> T[] toArray(Class<T> returnType) FooBar[] fba = something.toArray(FooBar.class);
1.4 //Class<T>表示一个类名
public interface BaseDao<T> { T get(); }
public abstract class HibernateBaseDao<T> implements BaseDao<T>{ private Class<T> entityClass;}
public class EntityDao extends HibernateBaseDao<Entity> { private Class<T> entityClass; public T get() { return entityClass.newInstance(); }}
2 Java使用多个参数
mul(int... list,int a) 是错误的,但是mul(int a,int... list)就是正确的。
//
public int mul(int a,int b){ return a * b;}
public int mul(int a,int b,int c){ return a * b * c;}
//不定数目的参数public int mul(int... list){ int result = 0; for (int num:list){ result *= num; } return result;}