请教下,一个方法的请求参数我用泛型表示,但内部有个方法需要制定参数的字节码类型,这个怎么用泛型表示字节码类型?
再加个入参 , Class<T> clazz
,直接使用 这个 clazz就行了
单独处理一下,等参数进来后运行时处理,泛型在运行时候可以知道具体类型,然后.class就获取到了
限制类型参数的类型种类范围。比如一个操作数字的方法,只希望接受Number和其子类。
要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。
/**
*
* 描述: 返回三个可比对象的最大值
* 标题: MaximumTest
*/
public class MaximumTest {
public static <T extends Comparable<T>> T maximum(T x, T y, T z) {
T max = x;
if (y.compareTo(max) > 0) {
max = y;
}
if (z.compareTo(max) > 0) {
max = z;
}
return max;
}
public static void main(String[] args) {
System.out.printf("%d, %d 和 %d 中最大的数为 %d\n\n", 3, 4, 5, maximum(3, 4, 5));
System.out.printf("%.1f, %.1f 和 %.1f 中最大的数为 %.1f\n\n", 6.6, 8.8, 7.7, maximum(6.6, 8.8, 7.7));
System.out.printf("%s, %s 和 %s 中最大的数为 %s\n", "pear", "apple", "orange", maximum("pear", "apple", "orange"));
}
}