Saat ini saya menggunakan logger di proyek saya dengan cara berikut:
private static final Logger LOGGER;
static{
LOGGER = logger.getLogger();
}
Saya mendapat review kode untuk menggunakan blok statis untuk menginisialisasi variabel logger. Saya diberitahu untuk menginternalisasi variabel logger dalam pernyataan deklarasi itu sendiri.
private static final Logger LOGGER = Logger.getLogger();
Saya mencoba mencari tahu apa bedanya jika saya tidak menginisialisasi di blok statis. Saya ingin tahu apakah ini sebuah praktik.
Jawaban:
Kecuali untuk beberapa kasus sudut yang benar-benar aneh yang melibatkan urutan inisialisasi, dua alternatif akan bekerja sama persis.
Namun, menginisialisasi instance tepat dalam deklarasi lebih pendek dan lebih akrab, dan harus lebih disukai karena alasan itu saja.
Blok inisialisasi statis adalah konstruk yang agak eksotis dan hanya boleh digunakan ketika mereka benar-benar memberikan nilai tambah, seperti ketika Anda perlu menangani pengecualian.
sumber
Map.of
metode Java 9 seharusnya membantu.Map.of
mengembalikan peta yang tidak dapat diubah, jadi jika Anda benar-benar membutuhkannya,HashMap
Anda masih perlu melakukannya dengan cara lama. Atau sesuatu sepertinew HashMap(Map.of(...))