2016-06-11 12 views
0

私はこのJavaメソッドboolean[] hasRoles(List<String> roleIdentifiers)の使い方について質問があります。文字列をJavaメソッドに渡す

どのように弦のリストを送ることができますか?

+1

このメソッドをどこで使用しますか。 Javaコードでは、Javaを学ぶ必要があります、それは文字列のリストでメソッドを実行する方法が明らかになります。 –

+0

たとえば、私はこのリストを試しました。 data = null;ブール値[]をブール値に変換できません。 –

+0

@PeterPenzovコメントに記述するエラーメッセージは、質問の全体的な方向を変えて問題の不可欠な部分です。それは質問に属しており、コメントでは与えてはいけません。 – Seelenvirtuose

答えて

2

方法は、エラーがあなたがあなたがboolean[]

1つの選択肢がありませんどのhasAllRolesをチェックすることですの要素をチェックする必要があり、結果

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

を使用する方法について不平を言っているboolean[]ないbooleanを返します。 booleanを返すか、関心のある特定の役割をindexで確認してください。

+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回使用します。 –

+1

@PeterLawreyあなたは明確にすることができますか?あなたが何を言っているのか分かりません。 – Sam