ホームページ >Java >&#&チュートリアル >Java の静的メソッド内から非静的メソッドを呼び出すにはどうすればよいですか?
静的メソッド内での非静的メソッドの呼び出し: よくある落とし穴
Java で、静的メソッド内で非静的メソッドを呼び出そうとするメソッドを使用すると、「非静的メソッド methodName() への静的参照を作成できません」という複雑なエラーが発生する可能性があります。このエラーは、静的メソッドは本質的にクラス レベルで動作するのに対し、非静的メソッドはクラスの特定のインスタンスに関連付けられているために発生します。
この問題を解決するには、考慮すべきアプローチがいくつかあります。
区別を理解する
インスタンスの使用
最も簡単な解決策は、ターゲット クラスのインスタンスを静的メソッド。その後、インスタンス上で非静的メソッドを呼び出すことができます。
public static void callNonStaticMethod() { MyClass instance = new MyClass(); instance.nonStaticMethod(); }
非静的メソッド内の静的コンテキストへのアクセス
場合によっては、非静的メソッドはクラス コンテキストへのアクセスを必要とします。このような場合、getClass() メソッドを使用してクラス オブジェクトにアクセスできます。
public void nonStaticMethod() { Class<?> targetClass = getClass(); // ... access static methods or members here }
設計代替案の検討
以上がJava の静的メソッド内から非静的メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。