オブジェクトを作成したいクラスパスのみを知りたい 助けてください。リフレクションパッケージを使用してクラスパスからオブジェクトを作成する方法
答えて
あなたはString
に完全修飾クラス名を持っている場合は、Class#forName()
とClass#newInstance()
を使用しています。
Object o = Class.forName("com.example.Foo").newInstance();
しかし、クラスパスにクラスが既に存在し、(暗黙の)デフォルトコンストラクタが必要です。
URL
にクラスの場所がある場合は、URLClassLoader
を使用し、それを引数として受け入れる別のClass#forName()
メソッドに渡します。その後、あなたの代わりにFile
でそれを持っている場合
URL url = getItSomehow();
URLClassLoader classLoader = URLClassLoader.newInstance(new URL[] { url });
Object o = Class.forName("com.example.Foo", true, classLoader).newInstance();
または、URL
最初に変換:「?私はそのクラスパスを知っている」
File file = getItSomehow();
URL url = file.toURI().toURL();
// Continue with URLClassLoader.
でも、クラスに属しているメソッドを呼び出そうとしている場合は、そのパスまたは修飾名を知っています –
これは別の質問ですので、答えの代わりにチュートリアルのリンクhttp://download.oracle。 com/javase/tutorial/reflect/member/methodInvocation.html貼り付いている場合は、右上にある[Ask Question]ボタンを押します。できれば問題を再現する小さなコードスニペットと一緒に、特定のステップに関する詳細を含めることを忘れないでください。適切な用語を選択して使用することに注意してください。 "クラスパス"という言葉は、あなたが思った通りのものではありませんでした。 – BalusC
OKですが、私のプロジェクトでは3つのクラスを持つ3つのクラスがあります。4番目のクラスと4番目のクラスで、ユーザーからの入力に応じて3つのクラスに3つのクラスがあります。 –
あなたはこれを意味しましたか?
Class c = Class.forName("java.lang.String");
- 1. コンテキストアプリケーションのクラスパスを使用してGroovyShellオブジェクトを作成する方法
- 2. Spring Frameworkを使用してクラスパス/名前からオブジェクトを作成する方法は?
- 3. 配列からJavaを使用して各オブジェクトを作成する方法
- 4. Javaの他のクラスからオブジェクトを作成して使用する方法
- 5. URIを使用してnsIFileオブジェクトを作成する方法
- 6. マルチプロセッシングを使用してnntplibオブジェクトを作成する方法
- 7. jaxbを使用してJavaオブジェクトを作成する方法
- 8. 3Dオブジェクトを使用してUIViewを作成する方法
- 9. enum要素を使用してオブジェクトを作成する方法
- 10. インデックス番号を使用してオブジェクトを作成する方法
- 11. DateTime.Parse()を使用してDateTimeオブジェクトを作成する方法
- 12. AggregationOutputオブジェクトを作成して後で使用する方法
- 13. Vue.jsを使用して配列からオブジェクトを作成する
- 14. プロパティファイルからGuavaを使用してオブジェクトを作成する
- 15. JAXBを使用しているサービスから返された 'anyType'からJavaオブジェクトを作成する方法は?
- 16. JavaScriptを使用してイベントを作成してオブジェクトに送信する方法
- 17. フィールドマッピングを使用してDataTableから新しいオブジェクトを作成
- 18. Gradle:JavaExecタスクで構成クラスパスを使用する方法
- 19. jqを使用してJSONキー値からオブジェクトIDを作成
- 20. Pandas - read_csvを使用してGeneratorオブジェクトからDataframeを作成
- 21. NPAPIを使用して新しいJSオブジェクトを作成する方法は?
- 22. Prototypeを使用して新しいAJAXオブジェクトを作成する方法
- 23. devExpress ReportWizardを使用してレポートを作成し、オブジェクトにバインドする方法
- 24. Pythonユニットテストで別のオブジェクトからオブジェクトを作成する方法
- 25. Retrofitを使用してJSONArrayを含むJSONObjectのオブジェクトを作成する方法
- 26. ストアドプロシージャを使用しているデータテーブルからリストビューを作成する方法
- 27. 変数を使用してオブジェクトを動的に作成する方法
- 28. 静的ファクトリメソッドを使用してオブジェクトを作成する方法は?
- 29. テンプレートを使用して「多対多」オブジェクトを作成する方法は?
- 30. アクティブなレコードフィールドを使用してクラスのオブジェクトを作成する方法は?
あなたは_で何を意味するのか明確にすることができ_まさに情報を扱う必要がありますか? @ BalusCのコメントに+1してください。 –
「クラスパス」とまったく同じ意味ですか? 'java.lang.String'の完全修飾クラス名、' java.net.URL'のクラスパス位置( 'ClassLoader#getResource()'によって取得されたもの)、または 'java.io.ファイル '? – BalusC
クラスパス? "org.mycompany.FirstClass"という行に沿って何かを意味するのであれば、あなたは行きたい!この種の文字列は完全修飾名と呼ばれます。 – Rekin