[英]What is the purpose of unnamed code blocks in Java?
在我的Java类中,我在{}
没有与之关联的名称/引用的语句,并且它似乎在构造函数运行之前已被执行。 目的是什么? 是否可以像通过关联变量/引用来调用方法那样来调用它? 如果没有,我可以更改触发顺序吗?
package com.core.java;
public class App {
public static void main(String[] args) {
new App();
}
static { System.out.print("static block, "); }
App() { System.out.print("constructor, "); }
{ System.out.print("what_is_this? "); }
}
我在Ruby中看到过类似的构造,可以将其与引用关联并随意调用。 例如
v = -> { puts "A Code Block" }
v.call #=> prints -> A Code Block
如果您想快速阅读这些结构及其用途,请参阅
http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
与Ruby的比较有些瑕疵,因为这只是Java和Ruby之间的语法相似性-在Ruby中,“ {}”的含义与Java使用此语法的含义完全不同。 Ruby中的“-> {}”是一个返回lambda的表达式,它是一个可调用的对象。
还可以通过一些不错的代码示例来帮助解释这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.