[解決済み】無名クラスのコンストラクタにアクセスする
2022-04-05 08:46:45
質問
例えば、具象クラス Class1 があり、そこから無名クラスを作成するとします。
Object a = new Class1(){
void someNewMethod(){
}
};
さて、この無名クラスのコンストラクタをオーバーロードする方法はないでしょうか?以下に示すように
Object a = new Class1(){
void someNewMethod(){
}
public XXXXXXXX(int a){
super();
System.out.println(a);
}
};
コンストラクタの名前にxxxxxxxxの何かで?
解決方法は?
からの Java言語仕様 15.9.5.1項を参照してください。
無名クラスは 明示的に宣言されたコンストラクタです。
すみません :(
EDIT: 別の方法として、いくつかの最終的なローカル変数を作成し、および/または匿名クラスのインスタンスのイニシャライザを含めることができます。例えば
public class Test {
public static void main(String[] args) throws Exception {
final int fakeConstructorArg = 10;
Object a = new Object() {
{
System.out.println("arg = " + fakeConstructorArg);
}
};
}
}
グロテスクですが、お役に立てるかもしれません。あるいは、きちんとしたネストされたクラスを使ってください :)
関連
-
[解決済み] C++で、あるコンストラクタを別のコンストラクタから呼び出す(コンストラクタ・チェイニングを行う)ことは可能ですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] コンストラクタ内の仮想メンバー呼び出し
-
[解決済み] あるコンストラクタを別のコンストラクタから呼び出す
-
[解決済み] 抽象クラスはコンストラクタを持つことができますか?
-
[解決済み] 匿名クラスはインターフェースを実装できますか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] x--やx++はここで何をするのですか?
-
[解決済み] 匿名クラスにパラメータを渡すには?