タグ付けされた質問 「type-inference」

型推論は、型システムによって定義されたルールを使用して、プログラムの型を自動的に推論するプロセスです。

1
型パラメーターがメソッドパラメーターよりも強いのはなぜですか
なぜですか 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, …

1
パターンマッチングにおけるメソッドの型推論とクラス型パラメーターの違い
型パラメーターが、囲んでいるクラスではなく、囲んでいるメソッドからのものである場合、パターンマッチングの動作が異なるのはなぜですか?例えば、 trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case Derived(_) => 42 } } } エラーを与える constructor cannot be instantiated to expected type; found : A$A87.this.Derived required: A$A87.this.Base[A] case Derived(_) => 42 ^ Aメソッド型パラメーターの場合は正常にコンパイルされますが class Test { def …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.