Groovy中不同类型的null [英] different types of null in groovy

查看:259
本文介绍了Groovy中不同类型的null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



 静态UserEvent get(long userId,long eventId){
userEvent.find',其中user.id =:userId和event.id =:eventId',
[userId:userId,eventId:eventId]
}


 

我用两次测试数据调用它: println UserEvent.get(1,1)//我知道这有价值
println UserEvent.get(1,2)//我知道这不是

$ p
$ b

以上两条语句的结果如下:

  scheduler.UserEvent:null 
null

问题



有什么区别?

更新


$ b $我怎样才能写出If条件b

我创建这样的对象:

  def event = Events.findById(params.eventid)
def user = User.findById(params.userid)

UserEvent.create(user,event,true)


解决方案

@tim_yates是正确的,被检索的对象没有id属性。看起来像M到M的关系。



所以在第一种情况下,一个实例被返回,但它的ID为null。
在第二种情况下,找不到对象。



您可以使用以下内容:

  def ue = UserEvent.get(userId,eventId)
if(ue& ue instanceof UserEvent){//做点什么}
else {//做其他事情}

希望这会有所帮助。


I have a method that looks like this:

static UserEvent get(long userId, long eventId) {
     UserEvent.find 'from UserEvent where user.id=:userId and event.id=:eventId',
            [userId: userId, eventId: eventId]
}

I'm calling it two times with some test data:

    println UserEvent.get(1, 1) //I know this has value
    println UserEvent.get(1,2) //I know this does not

The above two statements result in:

scheduler.UserEvent : null
null

Question

What is the difference? How can I write an If condition for when something is present or not..

Update

I'm creating the object like this:

def event = Events.findById(params.eventid)
def user = User.findById(params.userid)

UserEvent.create(user, event, true)

解决方案

@tim_yates is right, the object that is retrieved doesn't have an id property. Looks like an M to M relationship.

So in the first case an instance is being returned but it's ID is null. In the second case the object isn't found.

You can use something like:

def ue = UserEvent.get(userId, eventId)
if (ue && ue instanceof UserEvent) { //do something } 
else { //do something else }

Hope this helps.

这篇关于Groovy中不同类型的null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆