开发者社区> 问答> 正文

leanpub的Java 8 Lambda范围示例

我正在尝试通读此https://leanpub.com/whatsnewinjava8/read#leanpub-auto-scope,我对以下内容有些困惑:

  1. 为什么在r1的赋值中调用toString()
  2. 这如何证明lambda可用的范围

问题来源:Stack Overflow

展开
收起
montos 2020-03-26 14:44:08 476 0
1 条回答
写回答
取消 提交回答
  • 我可以肯定地回答第一个问题:

    调用该函数时System.out.println,它将执行以下操作:

    打印一个对象,然后终止该行。此方法首先调用String.valueOf(x)以获取打印对象的字符串值,然后像先调用print(String)然后再调用println()一样操作。

    来源:https : //docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println-java.lang.Object-

    随后的调用String.valueOf(x)将执行以下操作:

    如果参数为null,则字符串等于“ null”;否则为false。否则,返回obj.toString()的值。

    来源:https : //docs.oracle.com/javase/8/docs/api/java/lang/String.html#valueOf-java.lang.Object-

    因为this引用Hello它的一个实例,它只会Hello.toString()在给定的实例上调用方法-callstack:

    System.out.println(this);
    String.valueOf(this);
    this.toString();
    

    关于范围的第二个问题可能意味着您仍然可以引用封闭类的方法和字段,但是我发现此示例很奇怪,而且文档也没有很好地说明。

    回答来源:Stack Overflow

    2020-03-26 14:54:14
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载