整个通用类型的概念让我有些困惑,特别是运行时类型信息。
具体来说?好吧,这是要点:
enum QueryHelper {
query1,
query2;
static <T> QueryHelper getQueryHelper (Class<T> expectedReturn) {
if (expectedReturn.isInstance (SomeRelatedClass.class))
return query1;
else
return query2;
}
}
然后我可以这样调用它:
...
QueryHelper helper = QueryHelper.getQueryHelper(SomeRelatedClass.class);
...
我这么做是为了在实际的帮助程序中灵活地分配查询返回类型。 它进行一些强制转换和对象创建。 我看到的是没有匹配项,我应该用其他方法吗? 还是整个想法都不好?
而这个真正的核心问题是,我不理解class.isInstance和instanceOf运算符之间的区别? 我应该使用后者吗?