2014-06-13 37 views
-1

我有一个常规列表如下如何找到一个格式字符串的在elemets一个Groovy列表

def permissions = [ 
    TESTENTITY.ADMINISTER, 
    TESTENTITY.CREATE, 
    TESTENTITY.DELETE, 
    TESTENTITY.READ, 
    TESTENTITY.UPDATE, 
    TESTBEAN.ADMINISTER, 
    TESTBEAN.CREATE, 
    TESTBEAN.DELETE, 
    TESTBEAN.READ, 
    TESTBEAN.UPDATE 
] 

想找到所有格式“TESTENTITY”列表用更少的代码的元素。它可行吗?

+3

比什么代码少?那些字符串?你有什么尝试? –

+0

我不确定为什么这个问题被多次拒绝。除了问题中特有的“少代码”部分外,这似乎是一个完全合理的问题。 –

+0

作为一个新手Groovy开发人员,我无法找到关于为常规列表编写闭包的很多信息,我不明白为什么我的问题被拒绝为 – RanPaul

回答

1

这是我解释问题的方式。
不考虑每个元素作为String,而是集合Enum

enum TestEntity { 
    ADMINISTER, CREATE, DELETE, READ, UPDATE 
} 

enum TestBean { 
    ADMINISTER, CREATE, DELETE, READ, UPDATE, DONOTHING 
} 

def permissions = [ 
    TestEntity.ADMINISTER, TestEntity.CREATE, 
    TestEntity.DELETE, TestEntity.READ, TestEntity.UPDATE, 

    TestBean.ADMINISTER, TestBean.CREATE, 
    TestBean.DELETE, TestBean.READ, TestBean.UPDATE, TestBean.DONOTHING 
] 

permissions.findAll { it in TestEntity } 

注:
DONOTHING添加到TestBean只是以示区别。

+1

标题说他们是字符串。如果它们是枚举,那可能就解释了为什么这个问题被拒绝了。标题具有误导性。 –

1

你可以做这样的事情......

def matchingResults = permissions.findAll { perm -> 
    // perm will be one element from permissions. 
    // inspect it and return true if it should be 
    // include in the results. 
} 

如果这些都在权限列表中的字符串,这可能是这个样子......

def matchingResults = permissions.findAll { perm -> 
    perm.startsWith 'TESTENTITY' 
} 

是,你是什么寻找?

相关问题