整个泛型的事情有点让我陷入困境,RTT 更是如此。
特异性?嗯,这是要点:
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 运算符之间的区别?我应该使用后者吗?