0

このコード行が何をするのか教えてもらえますか? 私はアンドロイドのチュートリアルでそれを学びましたが、それを理解できませんでした.誰かがそれの詳細を教えてもらえますか?.

Class ourClass = Class.forName("com.prem.firsttry.STARTINGPOINT");
4

2 に答える 2

1

Class.forName("X") を呼び出すと、X という名前のクラスが (実行時に) 動的にロードされます。forName("X") を呼び出すと、X という名前のクラスが初期化されます (つまり、JVM はクラスのロード後にすべての静的ブロックを実行します)。Class.forName("X") は、"X" クラスに関連付けられた Class オブジェクトを返します。返された Class オブジェクトは、「x」クラス自体のインスタンスではありません。

Class.forName("X") は、まだロードされていない場合、クラスをロードします。JVM は、以前にロードされたすべてのクラスを追跡します。このメソッドは、それを呼び出すクラスのクラスローダーを使用します。「X」は、目的のクラスの完全修飾名です。

于 2013-01-27T07:04:37.947 に答える
0

このメソッドは、Java クラスをロードしてリンクします。オブジェクトを構築し、Classそれを提供します。でオブジェクトを作成できますnewInstance()

このようなメソッドの最も一般的な使用法は、特定のクラスが存在し、ロードできるかどうかを確認することです (JDBC ドライバーなど)。そうでない場合、このメソッドは例外をスローします。これにより、前述のクラスの静的初期化も発生します。

于 2013-01-27T07:01:24.923 に答える