1

Javaで静的クラス変数を初期化したい:

public class NumberExpression {
    private static Class numberClass = Class.forName("java.lang.Number");
};

Class.forName上記のコードセグメントは、をスローするため機能しませんClassNotFoundException。は抽象クラスであるため、のようなものnew Integer().getClass()は機能しません。Number

Class.forNameを処理する静的メソッドをラップアラウンドできると思いますClassNotFoundExceptionが、必要なものを取得するためのよりエレガントで標準的な方法はありますか?

編集:

(クラス「Number」は「java.lang.Number」に変更されました)

4

2 に答える 2

5

クラスが存在しないため、Number機能しません。あなたが意味したのはjava.lang.Number.

次のようなものを試すことができます:

public class NumberExpression {
    private static Class numberClass;
    static {
        try {
            numberClass = Class.forName("java.lang.Number");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
};

ただし、これは、ロードしようとしているクラスが動的である場合に意味があります。そうでない場合は、クラス自体を使用できます(つまりNumber.class)

于 2012-06-23T23:33:04.180 に答える
4

やってみませんか :

private Class numberClass = Number.class;
于 2012-06-23T23:40:01.973 に答える