2016-06-11 153 views
0

我有一个问题如何使用这种Java方法boolean[] hasRoles(List<String> roleIdentifiers)将字符串传递给Java方法

如何发送字符串列表?

+1

你在哪里使用这种方法。如果在java代码中,那么你应该学习java,这将是显而易见的如何使用字符串列表执行方法。 –

+0

例如,我试过这个'List data = null; currentUser.hasRoles(data)'但是我得到'不兼容的类型:布尔型[]不能转换为布尔型' –

+0

@PeterPenzov您在评论中描述的错误消息是您问题的一个重要部分,整体改变了问题的方向。它属于这个问题,不应该发表评论。 – Seelenvirtuose

回答

2

该方法返回一个boolean[]不是boolean错误抱怨你如何使用结果

List<String> data = ...; 
if (currentUser.hasRoles(data)) // will not work as a boolean[] if not a boolean 

您需要检查boolean[]

一种替代的元素是检查hasAllRoles哪些呢返回boolean或通过索引检查您感兴趣的特定角色。

+0

你是对的。我如何解决这个问题? –

1

你可以通过List<T>接口的实现,例如:

1) instance.hasRoles(new ArrayList<String>()); // the empty list 
2) instance.hasRoles(Arrays.asList("s1", "s2", ...)); // the list with values 
3) instance.hasRoles(new ArrayList<String>() { // look at @Sam's comment 
     { 
      add(...); 
      ... 
     } 
    }); 

相反的List<String> data = null;,你应该初始化列表。

看起来你正在尝试做类似 boolean result = instance.hasRoles(...);,但从该方法返回的类型是不同的。 booleanboolean[]是不一样的。

+2

'Arrays.asList()'方法应该始终优于双括号初始化方法; 'new ArrayList (){{add(...); }}'*每次使用它*时都会创建一个新类。 – Sam

+1

@Sam每次你在代码中使用它,但在运行时用于一行代码。 –

+1

@PeterLawrey你能澄清吗?我不清楚你在说什么。 – Sam

相关问题