当前位置: 代码迷 >> Web前端 >> Class<T> 跟 函数使用不定数目的参数
  详细解决方案

Class<T> 跟 函数使用不定数目的参数

热度:144   发布时间:2012-08-24 10:00:20.0
Class<T> 和 函数使用不定数目的参数

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;
}

  相关解决方案