Javaの型推論
Java のにもちょっとした型推論があるんだけどいまいち。どこまでやってくれるんだ。言語仕様第3版読めばわかるのかな。
2回ハマった。
public class Foo { public static void println(String str) { System.out.println(str); } public static void main(String[] args) { println(Functions.identityFunction().execute("foo")); // コンパイルエラーやがな。 } } interface Function<S, T> { T execute(S s); } class Functions { // 恒等関数ほしいんです static <T> Function<T, T> identityFunction() { return new Function<T, T>() { public T execute(T t) { return t; } }; } }
public class Foo { public static void println(String str) { System.out.println(str); } public static void main(String[] args) { println(Functions.<String>identityFunction().execute("foo")); // 教えてあげるとOKやん。 } } ...(略)...