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