Почему в JDO «pm.newQuery(Employee.class)», а не «pm.newQuery(Employee)»?
Вопрос
Почему в этом JDO .class
здесь нужен?
Query averageSalaryQuery = pm.newQuery(Employee.class);
Я бы предпочел написать этот более краткий синтаксис, если это возможно?
Query averageSalaryQuery = pm.newQuery(Employee);
Решение
Query averageSalaryQuery = pm.newQuery(Employee);
Ну, это все равно должна быть действующая Java, а это не так...
Способ ссылки на класс в Java — использование .class
синтаксис.
Другие советы
Использование суффикса «.class» является соглашением языка, поэтому ваш второй пример просто семантически недействителен.Ничего вы не можете с этим поделать.Это эквивалентно вызову getClass()
метод при создании экземпляра класса, например:
Query averageSalaryQuery = pm.newQuery(new Employee().getClass())
Так что это уже ярлык ;)
Не связан с StackOverflow