Por que “PM.NewQuery (Employee.Class)” e não “PM.NewQuery (funcionário)” no JDO?
Pergunta
Neste JDO, por que é .class
necessário aqui?
Query averageSalaryQuery = pm.newQuery(Employee.class);
Eu preferiria escrever essa sintaxe mais concisa, se possível?
Query averageSalaryQuery = pm.newQuery(Employee);
Solução
Query averageSalaryQuery = pm.newQuery(Employee);
Bem, ainda tem que ser válido Java, que acima não é ...
A maneira de se referir a uma classe em Java é usar o .class
sintaxe.
Outras dicas
Usando o sufixo ".classe" é uma convenção do idioma, portanto, seu segundo exemplo é apenas semanticamente inválido. Nada que você possa fazer sobre isso realmente. É equivalente a chamar de getClass()
Método em uma instanciação da classe, como:
Query averageSalaryQuery = pm.newQuery(new Employee().getClass())
Então já é um atalho;)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow