Более элегантный способ бросить в базовый заводной - PullRequest
5 голосов
/ 13 августа 2011

Мне всегда, кажется, нужно приводить значения в объекте params для выполнения .equals, но это никогда не кажется правильным. Если я использую parseXXX методы, я также должен защищать себя, когда значение пусто. Кажется, что есть лучший способ справиться с этим на динамическом языке, таком как Groovy. Кто-нибудь нашел другой способ, который больше похож на Groovy и меньше похож на Java? Я мог бы создать служебный класс для очистки, но Я ищу некоторые встроенные функции, поэтому, пожалуйста, не предлагайте дополнительные библиотеки .

Пример:

def intValue = (params.intValue)? Integer.parseInt(params.intValue) :null

Things.each{ thing -> 
    if (thing.intValue.equals(intValue)){
        //do stuff
    }
}

Ответы [ 2 ]

6 голосов
/ 13 августа 2011

Как насчет использования методов преобразования типов :

def intValue = params.int('myparam')

... есть также методы для boolean, long, char, short и так далее. Каждый из этих методов абсолютно нулевой и защищен от любых ошибок синтаксического анализа. так что вам не нужно выполнять никаких дополнительных проверок параметров.

1 голос
/ 13 августа 2011

Я думаю, что самый «Groovy путь» выглядит следующим образом:

params.intValue as Integer == thing.intValue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...