2016-06-11 194 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

相關問題