------- android培训、java培训、期待与您交流! ----------
明确指定集合装什么类型的!myeclispse的感叹号表示警告
编译完的字节码没有装入类型
collection3.getclass.getMethod("add",Object.class).invoke(collection3,"abc");
泛型是给编译器看的
Vector是老的集合方式,用枚举取出
数组元素不能使用参数类型
? 可以调用与参数无关的方法
问号不能赋值给固定类型
固定类型可以赋值给问号
private static <T> T add(T x,T y)
{
return x+y;
}
交换数组中元素的位置
private static <T> void swap(T[] a ,int i ,int j){
T tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
T必须是引用类型,不能说基本类型
Java不支持创建泛型数组
参数化类型 就是有<>这个符号的类型
public static<T> void copy1(Collection<T> t,T[] a)
{
for(int i=0;i<a.length;i++)
a[i]=obj;
}
泛型类
GenericDao
String[] str = {"abc", "bcd", "def"};字符串数组crud增删改查
public class GenericDao <T>//泛型类
{
publicvoid add(T x)
{ }
public T findById(ind t)
{
return null;
}
public void delete(T obj)
{
}
public void update(T obj)
{
}
}
静态方法不能用泛型类型的
每一个方法都能得到参数列表
通过的变量的方法可以获得参数列表
Method applyMethod=Gnenric.class.getMethod("apply",Vetcor.class)//参数类型
Tyep[] types= applyMehtod.getGenericParameterTypes();//方法可能有多种参数,所以用数组
ParameterizedType p=(ParameterizedType)types[0];
p.getRawType()//得到原始类型
p.getActualTypearguements()[0];//得到vetor里面装的是什么