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;

foo并且com.HTMLReceiver是同一事物的名称。

JavaScript 本身无法从类型转换到类型名称。

如果只传入String,我认为唯一通用的解决方案是eval。

于 2010-05-25T04:04:14.880 回答