このコード行が何をするのか教えてもらえますか? 私はアンドロイドのチュートリアルでそれを学びましたが、それを理解できませんでした.誰かがそれの詳細を教えてもらえますか?.
Class ourClass = Class.forName("com.prem.firsttry.STARTINGPOINT");
このコード行が何をするのか教えてもらえますか? 私はアンドロイドのチュートリアルでそれを学びましたが、それを理解できませんでした.誰かがそれの詳細を教えてもらえますか?.
Class ourClass = Class.forName("com.prem.firsttry.STARTINGPOINT");
Class.forName("X") を呼び出すと、X という名前のクラスが (実行時に) 動的にロードされます。forName("X") を呼び出すと、X という名前のクラスが初期化されます (つまり、JVM はクラスのロード後にすべての静的ブロックを実行します)。Class.forName("X") は、"X" クラスに関連付けられた Class オブジェクトを返します。返された Class オブジェクトは、「x」クラス自体のインスタンスではありません。
Class.forName("X") は、まだロードされていない場合、クラスをロードします。JVM は、以前にロードされたすべてのクラスを追跡します。このメソッドは、それを呼び出すクラスのクラスローダーを使用します。「X」は、目的のクラスの完全修飾名です。
このメソッドは、Java クラスをロードしてリンクします。オブジェクトを構築し、Class
それを提供します。でオブジェクトを作成できますnewInstance()
。
このようなメソッドの最も一般的な使用法は、特定のクラスが存在し、ロードできるかどうかを確認することです (JDBC ドライバーなど)。そうでない場合、このメソッドは例外をスローします。これにより、前述のクラスの静的初期化も発生します。