Java泛型方法 显式类型说明

一般来说,泛型方法的类型参数都是靠形参或者返回值赋值推断出来的(一般多为靠形参推断),但是也可以显示地给泛型方法以类型说明。所以本文就讲一下如何给泛型方法以显式的类型说明。

class One<T> {
    <T> void memberF(T t) {
        System.out.println(t);
    }
    static <T> void staticF(T t) {
        System.out.println(t);
    }
    void testF() {//One类定义内部
        this.<String>memberF("str");//调用成员泛型方法
        One.<String>staticF("str");//调用静态泛型方法
    }
}

public class test {//One类定义外部
    public static void main(String[] args) {
        One<Integer> o = new One<Integer>();
        o.<String>memberF("str");//调用成员泛型方法
        One.<String>staticF("str");//调用静态泛型方法
        o.testF();
    }
}

首先说下非静态即成员的泛型方法:

  • 在类定义外部,需要通过对象来调用成员方法,而显示类型说明则在.方法名之间,形如o.<String>memberF("str")
  • 在类定义内部,本来可以直接调用成员方法的,但现在需要通过脱裤子放屁的this来调用成员方法,因为这样显示类型说明就可以在在.方法名之间了,形如this.<String>memberF("str")

然后说下静态的泛型方法:

  • 在类定义外部,必须通过类名来调用静态方法,而显示类型说明则在.方法名之间,形如主函数里的One.<String>staticF("str")
  • 在类定义内部,本来可以直接调用静态方法的,但现在需要通过脱裤子放屁的类名来调用静态方法,因为这样显示类型说明就可以在在.方法名之间了,形如testF函数里的One.<String>staticF("str")
  • 我知道也可以通过对象名或this来调用静态方法,但这种不推荐的方式我不想强调了。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值