関数型インターフェースの配列の作り方
関数型インターフェースを勉強し始めた者です。
関数型インターフェースの配列はどのように作ればよいのでしょうか?
関数配列のようなものを作ろうとして以下のプログラムを作りました。
環境:Windows 7 64bit
IDE:Eclipse 4.5.2
JDK:1.8
package interfaceSample;
import java.util.function.Function;
public class FuncSample3 {
public static void main(String[] args) {
//@SuppressWarnings("unchecked")
Function<Integer, Integer>[] funcList = new Function[3];
funcList[0] = FuncSample3::mul;
funcList[1] = FuncSample3::add;
funcList[2] = FuncSample3::sub;
for (Function<Integer, Integer> function : funcList) {
funcApply(function, 10);
}
}
public static int mul(int x) {
return x * 2;
}
public static int add(int x) {
return x + 2;
}
public static int sub(int x) {
return x - 2;
}
public static void funcApply(Function<Integer, Integer> func, int t) {
System.out.println("この関数の値は"+func.apply(t));
}
}
このプログラムを打ち込んだところ、期待通りの出力をしてくれたのですが、以下の警告が出てきました。
型の安全性: 型 Function[] の式は、未検査の型変換を使用して Function<Integer,Integer>[] に準拠するようにする必要があります
このメッセージでググって見たのですが、インターフェースについてこのメッセージが出たケースに当たりませんでした。
@SuppressWarnings("unchecked")を付ければ警告は消えるのですが、あんまり気分が良くないです。
よろしくお願いいたします。
※OKWAVEより補足:「Webシステム開発」についての質問です。