4

私がこれを持っているとしましょう(name変数が「receiver」であると仮定します):

if (!(receiver instanceof com.HTMLReceiver)) {
    throw new com.IllegalArgumentException(
        name + " is not an instance of com.HTMLReceiver.");
}

このコードを共通のメソッドに分解して、次のように呼び出すことができるようにしたいと思います。

Helper.checkInstance(receiver, "com.HTMLReceiver");

com.HTMLReceiverしかし、文字列から実際の型に変換して使用できるようにする方法がわかりません instanceof

方法はありますか?

4

1 に答える 1

3

私はそれを次のように呼びます:

Helper.checkInstance(receiver, com.HTMLReceiver);

これにより、型名 ("com.HTMLReceiver") を出力できなくなります。

また:

Helper.checkInstance(receiver, com.HTMLReceiver, "com.HTMLReceiver");

印刷でユーザー文字列を使用します。

同じタイプが複数のタイプ名を持つことができることに注意してください

var foo = com.HTMLReceiver;

foocom.HTMLReceiverは同じものの名前です。

JavaScript には、型から型名自体に移行する方法はありません。

文字列のみを渡す場合、唯一の一般的な解決策は eval だと思います。

于 2010-05-25T04:04:14.880 に答える