## 泛型类 与泛型方法 混合使用
## 静态方法 与 泛型
package javabasis.fanxing;
import org.junit.Test;
/*
- 泛型类与泛型方法的混合使用
-
- 泛型类对应的方法 及 泛型方法区别
-
- 参数定义名称
-
- 静态方法使用泛型
*/
class FanXingClassAndMethod {private T param;
public FanXingClassAndMethod(T param) {
this.param = param;
}//泛型类中的方法,非泛型方法
public T getParam11(T param) {
this.param = param;
return param;
}//泛型方法
public T getParam21(T param) {return param;
}
//此方法用于对比, 编译器直接会报异常,因为此方法是依附于泛型类定义的,没有K类型,只有T类型
// public K getParam12(K param) {
// return param;
// }//泛型方法 可以定义K不受泛型类影响
public K getParam22(K param) {return param;
}
//静态方法 使用泛型,只能声明为泛型方法,无法依托于泛型类,因为静态方法早于类编译
public static T staticMethod(T param) {
return param;
}
}
public class NO3FanXing1 {
@Test
public void test() {
/*
* 1. 泛型类中的方法与 泛型方法比较
* */
FanXingClassAndMethod<Integer> fanXingClassAndMethod = new FanXingClassAndMethod<>(456);
//泛类中的方法,类型限制为Integer,无法是String
fanXingClassAndMethod.getParam11(454545);
// fanXingClassAndMethod.getParam11("dsfadfsf");
//泛型类方法则不受限制
fanXingClassAndMethod.getParam21("123123213");
}
}