我正在尝试通读此https://leanpub.com/whatsnewinjava8/read#leanpub-auto-scope,我对以下内容有些困惑:
问题来源:Stack Overflow
我可以肯定地回答第一个问题:
调用该函数时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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。