[解決済み] Javaで静的メソッドからgetClass()を呼び出す方法は?
2022-03-24 06:51:11
質問
私はいくつかの静的メソッドを持つ必要があるクラスを持っています。これらの静的メソッドの内部で、私は次の呼び出しを行うためにメソッドgetClass()を呼び出す必要があります。
public static void startMusic() {
URL songPath = getClass().getClassLoader().getResource("background.midi");
}
しかしEclipseは教えてくれる。
Cannot make a static reference to the non-static method getClass()
from the type Object
このコンパイルタイムエラーを修正する適切な方法は何ですか?
どのように解決するのですか?
回答
を使うだけです。
TheClassName.class
の代わりに
getClass()
.
ロガーの宣言
ログ宣言を挿入する簡単な方法を提供するという特定の用途のために、これは非常に注目されているので、私はそれについて私の考えを追加しようと思いました。 ログフレームワークはしばしば、ログが特定のコンテキスト、例えば完全修飾クラス名に制約されることを期待します。 そのため、変更せずにコピー&ペーストすることはできません。 ペーストセーフなログ宣言のための提案は、他の回答で提供されていますが、それらはバイトコードを膨らませたり、実行時イントロスペクションを追加したりするなどの欠点があります。 私はこれらをお勧めしません。 コピーペーストは エディタ そのため、エディタによるソリューションが最も適切です。
IntelliJでは、Live Templateを追加することをお勧めします。
- 省略形として "log"を使用します。
-
使用する
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger($CLASS$.class);
をテンプレートテキストとして使用します。 -
変数の編集]をクリックし、式を使ってCLASSを追加します。
className()
- FQ名を再フォーマットし、短縮するためのボックスにチェックを入れます。
- コンテキストをJava: 宣言に変更します。
今、あなたが
log<tab>
に自動的に展開されます。
private static final Logger logger = LoggerFactory.getLogger(ClassName.class);
そして、インポートを自動的に再フォーマットし、最適化します。
関連
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] cannot make a static reference to the non-static method "を解決するには?重複
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] Maven: assembly-pluginが全く実行されない
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] x--やx++はここで何をするのですか?
-
[解決済み】Javaの静的メソッドからクラス名を取得する方法
-
[解決済み】InputStreamとしてファイルを読み込むさまざまな方法
-
[解決済み] Javaで非静的メソッドを静的メソッドで呼び出す [重複]。