Closure Return Statement不会退出Method

时间:2015-07-23 23:21:59

标签: grails groovy closures

我将以下方法放在grails 2.4.5服务中。

   @PreAuthorize("hasRole('ROLE_ADMIN')")
   @Transactional
   void addPermission(Company company, String username, Permission permission) {


     if (AclClass.findByClassName(Company.class.name)) {
       def acl = aclUtilService.readAcl(company)
       Sid sidObject = new PrincipalSid(username)

       acl.entries.eachWithIndex { entry, i ->
          println("adddd")
          if (entry.sid.equals(sidObject) && entry.permission.equals(permission)) 
            return
          }
       }
     }
     aclUtilService.addPermission company, username, permission
   }

问题是if块中的return语句与addPermission方法不完全相同。它只是退出eachWithIndex闭包。

如何在放置return语句的地方退出addPermission函数?

0 个答案:

没有答案