【JAVASE】对于泛型方法的使用和判定,基础语法(含注解)

package Generics.CustomGenerics;

/**
 * @author 小王宝友
 * @version 3.89
 * 自定义泛型方法
 * 基本语法
 * 修饰符<T,R,K,......>返回类型 方法名(参数列表){
 *
 * }
 *
 * 注意事项:
 *      1、泛型方法,可以定义在普通类中,也可以定义在泛型类中
 *      2、当泛型方法被调用时,类型会确定
 *      3、public void eat(E e){},修饰符后没有<T,R,K,...>eat方法 不是泛型方法,而只是使用了泛型
 */
public class CustomizeMethodGenerics {
    public static void main(String[] args) {
        Bird<Object, Object, Object> bird = new Bird<>();
        Fish fish = new Fish();
        //当我们调用这个普通类中的泛型方法时,传入参数后,编译器会自动检测传入的类型
        fish.show("鱼");//值:鱼,类型:String
        System.out.println("=====重新设定传入参数的类型=====");
        fish.show(100.1);//值:100.1,类型:Double
        //即,当传入类型时,泛型方法所定义的泛型类型就确定了
    }
}

class Bird<T,R,M>{//可以在泛型类中也可以定义方法
    public void run(){//普通方法

    }
    //泛型方法
    //泛型方法可以使用类中所声明的泛型,也可以使用自身所声明的泛型
    public <E> void fiy (E t){//尽量的和泛型类所定义的泛型不同
        System.out.println(t);
    }
    //泛型方法可以使用类中所声明的泛型,也可以使用自身所声明的泛型
    //即,在使用类声明的泛型的同时也使用了自己所声明的泛型
    //K为泛型方法所声明的泛型,T为类声明的泛型
    public <K> void down(T t,K k){
        System.out.println();
    }
    //不是泛型方法
    //该方法只是使用了类中所声明的泛型,并没有泛型的修饰符
    //即public !<E>没有泛型修饰符! void fiy (E t)
    public void bye(T t){

    }
}

class Fish{//可以在普通类中定义泛型方法
    //<A>是用来修饰show方法,即自定义泛型方法

    public <A> A show(A t){
        System.out.println("t的值:"+t);
        System.out.println("t的类型:"+t.getClass().getSimpleName());
        return t;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值