オブジェクトを作成したいクラスパスのみを知りたい 助けてください。リフレクションパッケージを使用してクラスパスからオブジェクトを作成する方法
答えて
あなたは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. jaxbを使用してJavaオブジェクトを作成する方法
- 4. 3Dオブジェクトを使用してUIViewを作成する方法
- 5. DateTime.Parse()を使用してDateTimeオブジェクトを作成する方法
- 6. URIを使用してnsIFileオブジェクトを作成する方法
- 7. プロパティファイルからGuavaを使用してオブジェクトを作成する
- 8. JAXBを使用しているサービスから返された 'anyType'からJavaオブジェクトを作成する方法は?
- 9. Gradle:JavaExecタスクで構成クラスパスを使用する方法
- 10. Prototypeを使用して新しいAJAXオブジェクトを作成する方法
- 11. NPAPIを使用して新しいJSオブジェクトを作成する方法は?
- 12. リフレクションを使用してジェネリックC#オブジェクトを動的に作成する方法
- 13. AngularJSを使用してhtml形式のjsonオブジェクトを作成する方法は?
- 14. PHPを使用してメモリ内に共有オブジェクトを作成する方法は?
- 15. 有効なフォームデータを使用してデータベースにオブジェクトを作成する方法は?
- 16. jQueryを使用してJSONオブジェクトを配列に作成する方法は?
- 17. 静的ファクトリメソッドを使用してオブジェクトを作成する方法は?
- 18. オブジェクトへのポインタを引数として取るメソッドを使用してNSInvocationオブジェクトを作成する方法
- 19. オブジェクトをループしてツリーを作成する方法オブジェクト
- 20. ActiveXObjectを使用してJavaScriptからC#Comクラスを作成する方法
- 21. Hibernateを使用してデータベーステーブルからリアルタイムでエンティティを作成する方法
- 22. PDFBoxを使用してHTMLからPDFファイルを作成する方法は?
- 23. スーパークラスからコンストラクタを使用してサブクラスのインスタンスを作成する方法
- 24. Rパッケージを使用してポイントからポリゴンを作成する方法は?
- 25. Visual Studio 2010からSWIGを使用してDLLを作成する方法
- 26. リーフレットを使用して画像から地図を作成する方法
- 27. jqueryを使用してiframeオブジェクトを操作する方法
- 28. オブジェクトを作成して別のオブジェクトで使用する
- 29. python - xlwtを使用して作成したExcelファイルからPDFを作成する方法
- 30. リフレクションを使用してオブジェクトを作成するテンプレートメソッドを作成する
あなたは_で何を意味するのか明確にすることができ_まさに情報を扱う必要がありますか? @ BalusCのコメントに+1してください。 –
「クラスパス」とまったく同じ意味ですか? 'java.lang.String'の完全修飾クラス名、' java.net.URL'のクラスパス位置( 'ClassLoader#getResource()'によって取得されたもの)、または 'java.io.ファイル '? – BalusC
クラスパス? "org.mycompany.FirstClass"という行に沿って何かを意味するのであれば、あなたは行きたい!この種の文字列は完全修飾名と呼ばれます。 – Rekin