-5

こんにちは!配列から呼び出された文字列に応じてクラスを呼び出すことができる Java のチャンクを作成しようとしていますが、残念ながらそれを機能させることはできません。誰かが私を助けることができれば、私は最も感謝しています.これまでにハッシュ化したコードを含めました...

public class ProcrastinatorPanel extends JPanel {

    String[] room = {
             "Hallway", "Bathroom", "Study", 
             "Bedroom", "Dining Room", "Living Room", 
             "Kitchen", "Playroom", "Bathroom", "Garage" };

    int roomNumber = 0;

    public ProcrastinatorPanel() {

        Hallway.hallway = new Hallway();
        Class roomClass = Class.forName(room[roomNumber]);
    }
}
4

2 に答える 2

2

メソッドが機能するにはClass.forName()、完全修飾クラス名を表す文字列を渡す必要があります。例えば"com.mycompany.main.Hallway"

Class文字列の配列の代わりに esの配列を作成することもできます。まず、式Hallway.classは Hallway クラスに評価されます

また、プロアマチュアが指摘したようHallway.hallway = new Hallway()に、うまくいきません。コードはHallway hallway = new Hallway(). Hallway変数の型でありhallway、名前です。

于 2013-06-12T18:59:29.953 に答える
0

Class.forName() には、完全修飾クラス名が必要です。

また、ClassNotFoundException 例外のキャッチ/スローも見られませんでした。あなたが言及したコードは完全ですか?

于 2013-06-12T19:01:02.547 に答える