假设我有这个(假设名称变量是“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
。
有办法吗?
答案 0 :(得分:3)
我称之为:
Helper.checkInstance(receiver, com.HTMLReceiver);
这不允许您打印类型名称(“com.HTMLReceiver”)。
或:
Helper.checkInstance(receiver, com.HTMLReceiver, "com.HTMLReceiver");
您在打印中使用用户字符串。
请注意,相同类型可以有多个类型名称
var foo = com.HTMLReceiver;
foo
和com.HTMLReceiver
是同一个名称。
JavaScript无法从类型转换为类型名称。
如果你只传入字符串,我认为唯一的通用解决方案是eval。