Operador Java isInstance vs instanceOf

A coisa toda sobre genéricos está meio que me jogando para um loop, e mais ainda para o RTT.

Specificis? Ah, bem, aqui está a essência:

enum QueryHelper {
  query1,
  query2;
  static <T> QueryHelper getQueryHelper (Class<T> expectedReturn) {
    if (expectedReturn.isInstance (SomeRelatedClass.class))
      return query1;
    else
      return query2;
  }
}

e então eu chamaria assim:

...
QueryHelper helper = QueryHelper.getQueryHelper(SomeRelatedClass.class);
...

Isso é para que eu possa realmente atribuir de forma flexível o tipo de retorno da consulta no auxiliar real. Faz alguma conversão e criação de objetos. O que estou vendo é que não há correspondência, devo fazer isso de outra maneira? Ou a idéia toda é ruim?

E o verdadeiro coração disso é que não entendo a diferença entre class.isInstance e o operador instanceOf? Devo estar usando o último?

questionAnswers(3)

yourAnswerToTheQuestion