目次

Java / 基礎 / クラス / 無名クラス

バージョンと製造年月日

Javaの無名クラス

クラスという名前がついているが、これはロジックをメタプログラムするような動きのために無理やり導入した例外的文法で、JavaScript とかでいう

function hoge(a){
    return a();
}
hoge((function(){ return 1; }));

このような実装がしたいがために生み出されたと思われる。 無名クラスはJavaでは内部クラスと似たような挙動を見せる。

書き方

hoge(new Piyo(){
    public void fuga(){
        //何か処理
    }
});

このように書く無名クラスなのにPiyoという名前がついているのは、このPiyoクラスを継承して作るという意味だ。

スコープ

↑のfugaメソッド内はhogeメソッドが使われているどこかのメソッド内とはスコープがちょっと違う。

Tag