[解決済み】コンストラクタが与えられた型に適用できない?
2021-12-29 21:26:14
質問
コードは次のとおりです。
public class WeirdList {
/** The empty sequence of integers. */
/*ERROR LINE */ public static final WeirdList EMPTY = new WeirdList.EmptyList();
/** A new WeirdList whose head is HEAD and tail is TAIL. */
public WeirdList(int head, WeirdList tail) {
headActual = head;
tailActual = tail;
}
/** Returns the number of elements in the sequence that
* starts with THIS. */
public int length() {
return 1 + this.tailActual.length();
}
/** Apply FUNC.apply to every element of THIS WeirdList in
* sequence, and return a WeirdList of the resulting values. */
public WeirdList map(IntUnaryFunction func) {
return new WeirdList(func.apply(this.headActual), this.tailActual.map(func));
}
/** Print the contents of THIS WeirdList on the standard output
* (on one line, each followed by a blank). Does not print
* an end-of-line. */
public void print() {
System.out.println(this.headActual);
this.tailActual.print();
}
private int headActual;
private WeirdList tailActual;
private static class EmptyList extends WeirdList {
public int length() {
return 0;
}
public EmptyList map(IntUnaryFunction func) {
return new EmptyList();
}
public void print() {
return;
}
}
実行すると、エラーが発生します。
constructor cannot be applied to given type
解決方法は?
サブクラスは、コンストラクタにスーパークラスと同じ数のパラメータを持つコンストラクタを持つ必要はありません" が する は、自身のコンストラクタからそのスーパークラスのコンストラクタのいくつかを呼び出さなければなりません。
スーパークラスに引数なしのコンストラクタがある場合、スーパークラスのコンストラクタの明示的な呼び出しが省略されたり、サブクラスに明示的なコンストラクタがまったくない場合(あなたの場合)、デフォルトで呼び出されます。しかし、あなたのスーパークラスには引数なしのコンストラクタがないため、コンパイルに失敗します。
このようなものを
EmptyList
:
private EmptyList() {
super(0, null);
}
また、両方のクラスが継承する抽象的なスーパークラスを用意する方がよいかもしれませんが、それは選択の自由です。
関連
-
SecureCRTのダウンロードとインストール手順の詳細
-
Xmind無償起動方法(推奨)について
-
Burp Suite Proのインストールと設定のチュートリアルの詳細
-
BurpSuiteのインストールと設定の詳細
-
VSCodeリモートサーバ接続エラー:Could not establish connection to VSCode
-
TCPとUDPのプロトコルの原理と違いについての深い理解
-
[解決済み】アーキテクチャx86_64の未定義シンボル。コンパイル時の問題
-
[解決済み】git error: failed to push some refs to remote
-
DevOps、CI、CD、自動化を一挙に解説
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
Burpsuite Intruder Moduleの詳細。
-
近年のImagenetデータセットに基づくPytorchの画像分類モデルについてまとめる。
-
ゲートウェイ・ゲートウェイ原理の徹底分析
-
HDFSのNamenode高可用性メカニズムを見てみよう
-
MacでHomebrewのイメージソースを置き換える方法
-
Iris環境構築詳細チュートリアル(最新版Go & IDEA & IrisV12)
-
[解決済み】「collect2: error: ld returned 1 exit status」とはどういう意味ですか?
-
[解決済み】git error: failed to push some refs to remote
-
C1ミッション01:ゲームアーカイブスの改造方法
-
DevOps、CI、CD、自動化を一挙に解説