java定义泛型与&&方法体自定义泛型

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)   也可以写成这个样子,自定义多个数据泛型
 

猜你喜欢

转载自www.cnblogs.com/ly12/p/12796026.html