■ サンプル
IHelloWorld.java
@FunctionalInterface
public interface IHelloWorld {
String sayHello(String name);
}
@FunctionalInterface については、以下の関連記事を参照のこと https://blogs.yahoo.co.jp/dk521123/37206013.html
HelloWorld.java
public class HelloWorld implements IHelloWorld {
@Override
public String sayHello(String name) {
return "Hello, " + name + "!!!";
}
}
Main.java
public class Main {
public static void main(String[] args) {
// 【参考】 匿名内部クラス / 無名内部クラス
// => https://blogs.yahoo.co.jp/dk521123/37174760.html
print(new IHelloWorld() {
@Override
public String sayHello(String name) {
return "Hello World, " + name + "!";
}
}, "Tom");
// 【参考】ラムダ式
print((name) -> "Hi, " + name + "!!", "Sam");
// ★注目★ 参照メソッド
HelloWorld hello = new HelloWorld();
print(hello::sayHello, "Mike");
}
private static void print(IHelloWorld hello, String name) {
System.out.println("Result : " + hello.sayHello(name));
}
}
出力結果
Result : Hello World, Tom! Result : Hi, Sam!! Result : Hello, Mike!!!
参考文献
http://www.atmarkit.co.jp/ait/articles/1407/28/news023_3.htmlhttp://www.geocities.jp/m_hiroi/java/abcjava13.html