匿名クラス(AnonymousClass)とはクラス名を持たないクラスのことを指し、
newキーワードともに「クラスの宣言」と「インスタンスの生成」を同時に行うことが出来ます。
一般的にはインターフェースの実装をその場で行うために使用されます。
クラスを1個所でしか使わないのであれば、名前のあるクラスを用意するよりも匿名クラスで記述した方が簡単です。
Java
new InterFaceName(){
//メソッド実装
}
以下のインターフェースを例にします。
IF.java
@FunctionalInterface
public interface IF {
public void method1(String str);
}
上記のインターフェースを匿名クラスとして実装した例
Main.java
public class Main {
public static void main(String args[]){
IF IF = new IF(){
public void method1(String str){
System.out.println(str);
}
};
IF.method1("test"); //test
}
}
上記を簡略化した実装例
Main.java
public class Main {
public static void main(String args[]){
new IF(){
public void method1(String str){
System.out.println(str);
}
}.method1("test");
}
}
この例では、m.callIF
の引数に匿名クラスをセットしています。
Main.java
public class Main {
public static void main(String args[]){
Main m = new Main();
m.callIF(new IF(){
public void method1(String str){
System.out.println(str);
}
});
}
public void callIF(IF IF){
System.out.println("1");
IF.method1("test");
System.out.println("3");
}
}
以上で記事の解説はお終い!
もっとJavaやSpringを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!