Cú pháp mới java này là gì

Dạ em nghĩ đây là cú pháp trong JDK phiên bản mới mà em không biết ý nghĩa và cách hoạt động của nó

var values = new HashMap<String, String>() {{
			put("A", "B");
			put("C", "D");
}};

Đoạn set giá trị cho map viết như này là sao?

        {{
			put("A", "B");
			put("C", "D");
        }}

Nó khác gì với

var values = new HashMap<String, String>();
values.put("A", "B");
values.put("C", "D");

Em cảm ơn!

Double brace initialization, dạng như một trick khi code thôi. Kết hợp giữa dùng annonymous inner class (ngoặc ngoài) và inner block (trong class, ngoặc trong).

https://www.baeldung.com/java-double-brace-initialization

Nói chung biết cho vui thôi, nên tránh dùng vì nó tạo thêm 1 class mới mỗi lần sử dụng.

9 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?