Java 一种更优雅的方式,在基础groovy中进行铸造

Java 一种更优雅的方式,在基础groovy中进行铸造,java,groovy,casting,Java,Groovy,Casting,为了执行.equals,我似乎总是需要在params对象中强制转换值,但这感觉永远不对。如果我使用parseXXX方法,我还必须在值为空时保护自己。在Groovy这样的动态语言中,似乎有更好的方法来处理这个问题。有没有人找到一种感觉更像Groovy而不像Java的不同方式?我可以构建一个实用程序类来清理这个问题,但是我正在寻找一些内置功能,所以请不要建议额外的库 例如: def intValue = (params.intValue)? Integer.parseInt(params.intVa

为了执行
.equals
,我似乎总是需要在params对象中强制转换值,但这感觉永远不对。如果我使用
parseXXX
方法,我还必须在值为空时保护自己。在Groovy这样的动态语言中,似乎有更好的方法来处理这个问题。有没有人找到一种感觉更像Groovy而不像Java的不同方式?我可以构建一个实用程序类来清理这个问题,但是我正在寻找一些内置功能,所以请不要建议额外的库

例如:

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

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

我认为最“常规的方式”如下:

params.intValue as Integer == thing.intValue
使用以下命令怎么样:

…还有用于
boolean
long
char
short
等的方法。这些方法中的每一个都是空安全的,并且不会出现任何解析错误 因此,您不必对参数执行任何附加检查


@Michael这一个对格式错误的
params.intValue
抛出了
NumberFormatException
,就像你原来的代码那样,但这可能不是你真正想要的——另一个答案没有这个问题:)。太好了!我知道必须有一个更棒的方法。
def intValue = params.int('myparam')