【发布时间】:2019-12-11 15:22:23
【问题描述】:
我正在编写一个函数来测试 Object 类型的变量是否属于给定类型。例如,如果我输入"This is a string" 和String.class 作为参数,它应该返回true。
我尝试了以下代码:
public static boolean Debug(Object variable, Class<?> testClass) {
if (variable instanceof testClass) {
return true;
}
return false
}
但是,我得到了错误:“testClass cannot be resolve to a type”。
我不太清楚这是为什么。
任何建议将不胜感激。
【问题讨论】:
-
我可能错了,但我认为你不能将变量作为
instanceof运算符的正确参数,它必须是一个具体的类/接口 -
好吧,“abc”不是
Class的实例,即使Class 描述 String 类。您可能想使用testClass.isInstance(variable)。但老实说通常这代表XY problem,你能解释一下为什么你要创建这样的代码吗? -
请遵守 Java 命名约定。该方法应该被称为
debug(camelCase,而不是PascalCase)。 -
并且不确定这里有多少赞成票...这确实不像 OP 之前做过很多研究...
-
@GhostCatsaysReinstateMonica 正确!
标签: java