Java isInstance против оператора instanceOf

Вся эта штука с дженериками заставляет меня зацикливаться, и более того, 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? Стоит ли использовать последнее?

24
задан Ciro Santilli 新疆改造中心法轮功六四事件 6 February 2015 в 08:44
поделиться