## 泛型类 与泛型方法 混合使用## 静态方法 与 泛型
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 {
@Testpublic void test() { /* * 1. 泛型类中的方法与 泛型方法比较 * */ FanXingClassAndMethodfanXingClassAndMethod = new FanXingClassAndMethod<>(456); //泛类中的方法,类型限制为Integer,无法是String fanXingClassAndMethod.getParam11(454545);
// fanXingClassAndMethod.getParam11("dsfadfsf");
//泛型类方法则不受限制 fanXingClassAndMethod.getParam21("123123213");}
}