java初学者一枚,学习别人的代码遇到类似如下的泛型方法定义:
public static <T> boolean check(String a, int b, String c) {
T t = null;
t = (T)fun(a,b,c);
return t != null;
}
调用的时候直接通过类名来调用,即 boolean f = a.check(a,b,c);
求问函数里的T是如何确定的?
public static <T> boolean check(String a, int b, String c) {
T t = null;
t = (T)fun(a,b,c);
return t != null;
}
调用的时候直接通过类名来调用,即 boolean f = a.check(a,b,c);
求问函数里的T是如何确定的?
从代码上看,这个方法不应该写成泛型方法,因为非空校验不需要知道类型,唯一的区别在于可能抛出转型异常。
静态泛型方法的调用,可以手动指定参数类型,避免混淆:boolean f = a.<String>check(a,b,c);
但是你这个方法根本不需要如此定义,直接返回 fun(a,b,c) != null 即可
return fun(a,b,b)!=null ;