2014-12-31 25 views
1

我一直在Java中更頻繁地使用它,但我不知道它叫什麼。本質上有一個函數將一個類型作爲參數,並且在函數中可以使用重寫的函數/方法。這些函數可以在主類暴露的函數中執行。例如:這個Java代碼結構的術語是什麼?

public class Whatisthis { 

    private OtherLibsomeCallback theCallback; 

    public void dothatthang{ 

     //What do you call this kind of code structure? 
     someCallback(window, theCallback = new OtherLibsomeCallback() { 

      @Override 
      public void invoke(long a, double b) { 
       // TODO Auto-generated method stub 
       globalVar = a + b; 
      } 
     }); 
    } 
} 
+3

「匿名類」。請參閱http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html。 – ajb

+0

匿名類。 –

+0

'內部類'或更具體'匿名類'類型 –

回答

2

這被稱爲Anonymous類。

這是從Oracle文檔:

Anonymous classes enable you to make your code more concise. They enable you to declare and instantiate a class at the same time. They are like local classes except that they do not have a name.

+0

謝謝。我會做一些閱讀 - 現在我知道要尋找什麼。我覺得這個匿名類非常乾淨和有用。 –

0

你可以說它是短手編碼技術。

代碼使用Anonymous class作爲函數的參數。

0

這是匿名內部類

它可以通過多種方式申報。當你想覆蓋基類/接口的某些功能時(主要是抽象類/接口),它主要用到。其給予純繼承功能。並且它也在@Abhishek說的同時宣佈和實例化。

你也可以使用匿名內部類中的方法的呼叫:

object.someMethod(new Object(){ 
    // you can override method here 
    });