Java 里的类型推导,上篇文章中的一个问题

2018/01/04 Java

看看我刚刚脑子里闪出了什么!

刚刚发了这篇文章,突然发现我说的那个 “Java 没有类型推导” 是错的。

于是我就写出了这样的代码。这玩意正确地推导了这个匿名类的准确的类型:

static <T> void doWith(T obj, Consumer<T> consumer) {
  consumer.accept(obj);
}

public static void main(String[] args) {
  doWith(new Object() {
    void starPlatinum() {
      System.out.println("Star finger!");
    }
  }, obj -> obj.starPlatinum());
}

这个代码是正确的,能编译能运行,并且这个 lambda 只能被写成这种形式,不能展开成匿名内部类,不能改成方法引用。

因为我觉得这灵光一闪太牛逼了,我就单独发文章了。

mikecovlee


评论/Comments

创建一个 issue 以申请评论
Create an issue to apply for commentary

Search

    Table of Contents



    如果觉得这篇文章给您带来了收获或者说它值得您这么做,您可以选择对我进行捐助。
    左微信,右支付宝。