■ サンプル
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