[英]What is this in java? Attaching methods “on the fly”?
我今天看到這樣的事情:
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
以下部分是什么意思?
new AClass(){ this part }
我可以“擴展”並創建此 class 內聯的新實例嗎?
google了一下,不知道叫什么= =
PS:學習java =p
它被稱為“匿名類”......它是實現接口或擴展現有 class(通常是抽象的“適配器”或“幫助器”類)的簡寫方式,無需費心命名它。
您通常在 Swing 代碼中看到它...實現 window 和鼠標偵聽器。
這看起來(從表面上看)像是對該主題的體面討論: http://www.javaworld.com/javaworld/javaqa/2000-03/02-qa-innerclass.html
干杯。 基思。
為了增加波西米亞的答案,這和做這樣的事情是一樣的
class MyWindowAdapter extends WindowAdapter() {
@Overide
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
和
frame.addWindowListener(new MyWindowAdapter());
它只是一個匿名的內部 class,當你只打算使用該接口實現一次時它很有用,它可能非常有用,否則你將不得不為此創建一個完整的 class。
它被稱為匿名class。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.