ビルダーインスタンスを再利用していくつかのコントロールを作成したいが、わかりにくいコンパイルエラーが出ている。ジェネリック医薬品を正しく理解していない私が原因だと思う。誰も助けることができますか? clickHandlerはEventHandler<ActionEvent>
JavaFXビルダー/ Javaジェネリック
ある
ButtonBuilder builder = ButtonBuilder.create().minHeight(40.0).minWidth(40.0);
Button button1 = builder.onAction(clickHandler).build(); // Error
Button button2 = ButtonBuilder.create().minHeight(40.0).minWidth(40.0).onAction(clickHandler).build(); //OK
私が手にエラーが
error: cannot find symbol
Button button1 = builder.onAction(clickHandler).build();
^
symbol: method build()
location: class ButtonBaseBuilder
それは、ビルド()メソッドを持っている必要がありますのでButtonBaseBuilderはそれではないはず、ビルダーを実装しているのですか?また、(button2のように)すべてを一緒に実行するとOKです。
これは事前に2.1
おかげで、 ピート
ありがとう!分かったと思います; ButtonBuilderのタイプにジェネリックパラメータを追加すると、コンパイラはそのタイプを(推論によって) '覚えている'ように指示します。それがなければ、XXXBuilderメソッドはButtonBuilderのスーパークラスである独自の型を返します。 –
うん、そうだよ! –