Ne yazık ki Java'yı yaklaşık beş yıldır kodlamamışım ve aşağıdaki kodun nasıl ve niçin çalıştığını kesinlikle hatırlayamıyorum.Bu kurucu, aşağıdaki çift parantezleri ile nasıl çağrılır?
Benzer bir örnek üzerinde tökezledim ve bunu kırdım. Vurgu, yorumun altındaki kısımdadır: Ben kurucu notasyonunu ve ardından bloku çift parantez içinde alamıyorum. Ve ne yazık ki, Java dokümantasyonunda veya Google’ı kullanarak herhangi bir şey bulamıyorum (google? Bu notasyonu/sözdizimi nasıl
- denir:
package syntaxtest; public class Main { public static void main(String[] args) { // What kind of notation is this? MyTest tester = new MyTest() {{ setName("John Johnson"); }}; System.out.println(tester.getName()); } } class MyTest { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Yani benim sorular şunlardır?
- Bununla ilgili bazı belgeleri nerede okuyabilirim?
Sanırım birisi bana birinci soruya cevap verebilirse ikinci soruyu kendi başıma cevaplayabileceğimi umuyorum.
Netleştirmek için: Çıktının John Johnson
olduğunu biliyorum;) Ama neden çalıştığını bilmiyorum.
aynıdır. Ne olduğunu bildikten sonra, belli oluyor. –
Bu temiz numarayı bir süre önce SO üzerinde görmüştüm, ama aynı zamanda bir kaç sorumsuzluğun da onunla işleri kırmanın kolay olduğunu söyleyen/çok güvenilir olmadığını gördüm. Eğer onu kullanmayı deneyeceksem, şunu düşünürüm: A) O zamandan beri kodu görmek için herkese açıklamak zorundayım, ve B) Bazı araştırmalar yapmak zorundayım. Bu deseni kullanmanın tüm etkilerini anlamak. –
Hızlı ve yardımcı yanıtlar için hepinize teşekkür ederiz! – klekker