Class <T> 用来定义类的泛型
方法返回值之前加<T> 用来自定义泛型
下面是一段简单的代码
package javaSomthing.fanxing; /** * 来理解泛型 类的泛型和方法返回值之前的泛型 */ public class TTtest<T> { //<T> 定义传入的参数类型 public TTtest() { } public void test1(T t) { System.out.println(t); } public <T> void test2(T t) { //这里自定义泛型 <T> 实际不是类的泛型<T> 实际是一个形参,可以为了易于阅读可以改成<E> 或其它 System.out.println(t); //public <E> void test2(<E E) } public void test3() { System.out.println(123123); } public void test4(T t, T t2) { System.out.println(t); System.out.println(t2); } public <E> void test5(T t, E t2) { //这里第一个参数类型为T System.out.println(t); System.out.println(t2); } } class Demo { public static void main(String[] args) { TTtest<String> ttest = new TTtest<String>();//创建TTest 对象,定义泛型为String ttest.test1(Integer.valueOf(1)); //调用 test1方法传入Integer类型 编译不通过 ttest.test2(Integer.valueOf(1)); //调用 test2方法传入Integer类型 编译通过 ttest.test3(); //没又传入参数,通过编译 ttest.test4("aa", "22");// 两个参数都为String, 编译通过 ttest.test5(223, 22); // public <E> void test5(T t, E t2) 这里应该是test(String,E) 传入test5(223, 22) 不通过编译 } }
Class<T> 用来定义类的泛型
public <T> void test2(T t) 用来自定义方法的泛型 就是该方法可以传入任意类型的数据
public <E,G> void test5(G G, E t2) 也可以写成这个样子,自定义多个数据泛型