型パラメーターがメソッドパラメーターよりも強いのはなぜですか
なぜですか public <R, F extends Function<T, R>> Builder<T> withX(F getter, R returnValue) {...} より厳しい public <R> Builder<T> with(Function<T, R> getter, R returnValue) {...} これは、ラムダの戻り値の型がコンパイル時にチェックされない理由のフォローアップです。私は次のwithX()ような方法を使用して見つけました .withX(MyInterface::getLength, "I am not a Long") 必要なコンパイル時エラーを生成します。 タイプBuilderExample.MyInterfaceのgetLength()のタイプは長く、これは記述子の戻りタイプと互換性がありません:文字列 メソッドを使用している間with()はしません。 完全な例: import java.util.function.Function; public class SO58376589 { public static class Builder<T> { public <R, F extends Function<T, …