簡體   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