繁体   English   中英

Java中未命名代码块的目的是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM