[解決済み] メソッドのオーバーロード:両方のメソッドが同じ消去を持つ
2022-02-05 18:28:38
質問
次のようなコードがあるのですが、うまくいきません。
both methods have same erasure
が表示されます。
public class Foo<V> {
public static void main(String[] args) {
}
public void Bar(V value) {
}
public void Bar(Object value) {
}
}
また、こんなコードもあります。
public class Foo<V> {
public static void main(String[] args) {
}
public void Bar(B value) {
}
public void Bar(A value) {
}
}
class A {
}
class B extends A {
}
そして、これは動作します。最初のケースでは
V
の子です。
Object
のように、2番目のケースと同じように
B
の子です。
A
. では、なぜ最初のケースはエラーになり、2番目のケースはコンパイルに成功するのでしょうか?
EDIT : エラーを発生させずにメソッドのオーバーロードを実現するにはどうすればよいですか?
どのように解決するのですか?
<ブロッククオートエラーを発生させずにメソッドのオーバーロードを実現するにはどうしたらいいですか?
単純に、同じ消去を持つパラメータでメソッドをオーバーロードしようとしないことです。
いくつかのオプションがあります。
- メソッドに異なる名前を付けるだけ(つまりオーバーロードを使おうとしない)。
- 曖昧さをなくすために、オーバーロードのひとつにさらなるパラメータを追加します。 必要 しかし、Java APIには、オーバーロードの問題を避けるために、単にジャンク・パラメータが存在する例があります)。
-
で提案されているように、型変数をバインドしました。 かやまん :
<V extends SomethingOtherThanObject>
関連
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み] メソッドがスーパータイプのメソッドをオーバーライドまたは実装していない - Overrideの場合
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み] メソッドは、タイプ内の別のメソッドと同じ消去を持つ
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javaの".class期待値"
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み] テスト
-
[解決済み] メソッドは、タイプ内の別のメソッドと同じ消去を持つ