Я обычный C # / ASP.NET MVC / Visual Studio пользователь, и я только что начал проект в JAVA / GRails / Eclipse , но я нахожу его довольно сложно использовать функции отладки Eclipse и найти их несколько ограниченными по сравнению с Visual Studio. В частности, я нахожу следующее разочаровывающим, но я не знаю, являются ли они ограничениями Eclipse как ванильной IDE или тем, что я пытаюсь использовать его для разработки с использованием Grails.
На первый взгляд плохой эквивалент Visual Studio " Immediate Window " - В VS я все время использую окно Immediate во время отладки, и я обнаружил, что в Eclipse эквивалентом является " Дисплей"Просмотр. Тем не менее, в то время как в VS я могу ввести имя объекта (например, «? User») и после нажатия Enter мне даны все свойства / методы объекта, в затмении я должен выделить выражение и затем явно сказать ему либо выполнить проверку, выполнить и т. д. Сделав это, он затем добавляет результаты проверки в другое окно, заставляя меня переходить между ними.
Вид дисплея, кажется, не может реально оценить свойства или методы . Если, например, у меня есть экземпляр класса User, и в окне «Дисплей» введите userInstance.FirstName или вызовите метод, например userInstance.FullName (), я получу ошибки оценки: «Метод FullName () не определен для Тип объекта ". Кроме того, если я добавлю часы для экземпляра, я смогу увидеть свойства, но опять-таки метод нигде не будет виден. Однако метод оценивает штраф как выражение в блоке кода (доказывая, что он существует и распознается)
Кроме того, хотя в различных документах говорится, что можно добавить часы, просто выделив объект, при щелчке правой кнопкой мыши и добавлении часов эта опция, похоже, отсутствует, поэтому мне приходится вводить объект в дисплей просмотреть, выделить его и добавить часы из контекстного меню просмотра дисплея.
Оценка выражений, таких как User.get (params.id) (снова в представлении отображения), возвращает ошибки , такие как:
User.get (params.id)
Оценка не удалась.
Причина (ы): параметры не могут быть разрешены
Тем не менее, он оценивает нормально при переходе по коду. Это связано с динамической природой Grails / Groovy?
Фрагменты кода:
User.groovy:
class User {
String firstName
String lastName
String middleName
private String fullname
static constraints = {
firstName(blank:false)
lastName(blank:false)
middleName(blank:false)
}
public String FullName()
{
fullname = firstName + " " + lastName;
}
}
UserController.groovy:
class UserController {
...
def show = {
User userInstance = User.get(params.id)
userInstance.FullName()
if (!userInstance) {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), params.id])}"
redirect(action: "list")
}
else {
[userInstance: userInstance]
}
}
...
}
Кто-нибудь может сказать, являются ли это ограничениями Eclipse, подключаемых модулей Grails для Eclipse или что-то еще. В любом случае, они делают разработку веб-приложения MVC с использованием JAVA гораздо менее привлекательной, чем эквивалентный ASP.NET MVC, который я использовал.
Спасибо