ท่าแปลกๆ ใน Java สำหรับสร้าง anonymous class

จริงๆ มันก็คงไม่ได้แปลกอะไรมากหรอก แต่ผมเขียน Java เจอตัวอย่างของ jMock เข้าไปงงมากๆ งงตอนที่เจอ

new Expectiation {{
    // ...
}}

ประมาณนี้เข้าไป โดยเฉพาะ {{ นี้มันคืออะไร พยายามใช้ search engine หาคำอธิบายก็ไม่เจอ บางทีคนเราก็นึกคำค้นไม่ออก ผมใส่ java anonymous class {{ }} เข้าไป😛 พวก {{ อาจจะโดนตัดทิ้งหรือเป็นสัญลักษณ์พิเศษหรือเปล่าก็ไม่รู้เลย ลองมาเขียนเล่นดูเอง

package funfun;

class Bar {
	int i;
	public Bar() {
		i = 30;
	}
	public void printI() {
		System.out.println(i);
	}
}

public class Fun {
	public static void main(String[] args) {
		Bar b = new Bar() {{ i = 20; }};
		b.printI();
	}
}

ผมเดาว่าใน {{ }} น่าจะเป็น constructor หลังจากลองโปรแกรมข้างบน ผลออกมาได้ 20 นะ … ก็น่าจะใช้มั้ง constructor …😛

เพิ่มเติม: มันคือ Initializing Instance Members via @pphetra

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s