2017-01-09 8 views
-2

メソッドパラメータとしてStringString<List>を受け入れるJavaメソッドがあります。どのようにしてStringをListの一部にしないのかを区別しますか?Javaメソッドのパラメータ、Stringの後に続くリスト

方法:

void returnValues(String sensor, List<String> attributes) 

コール:

nexaConnect.returnValues(Arrays.asList("19455746", "blobJson", "deviceMfg", "eventCode", "sensorClass", "sensorUUID", "timeStamp", "uID")); 

私の周りにのみ可能仕事が見ることができるが、最初の文字列を削除し、リスト内の値が含まれ、その後の最初の値を取得することですリストを使用してそれを使用します。リストの一部ではないようにそれらを分ける方法はありますか?

+2

文字列値を渡します"、yourList);'で十分でしょうか? – SomeJavaGuy

+0

最初の引数はどこですか? – NewUser

+1

_文字列とリストを受け入れるJAVAメソッドがあります。 _このメソッドを呼び出すときには、これらの引数を渡す必要があります。次に、リストに含まれているかどうかを検索するロジックを表示する必要があります。 – AxelH

答えて

5

returnValuesを呼び出す試行が仮パラメータと一致しません。それがあなたが求めているものだと仮定すると、このようになります。

nexaConnect.returnValues("TheFirst", Arrays.asList("19455746", "blobJson", 
    "deviceMfg", "eventCode", "sensorClass", 
    "sensorUUID", "timeStamp", "uID")); 

または、今の

String sensor = "TheFirst"; 
List<String> attributes = Arrays.asList("19455746", "blobJson", 
    "deviceMfg", "eventCode", "sensorClass", 
    "sensorUUID", "timeStamp", "uID"); 
nexaConnect.returnValues(sensor, attributes); 
+0

ちょうど 'String ... listItems'としてvarargsを使用することは' list'だけがmethodcallのために初期化されることを考慮すると、他のオプションになることに注意します。単純な呼び出しではなく、意図的に渡された 'List'リファレンスを修正してください。これにより、 'Array.asList'呼び出しを削除することができます。 – SomeJavaGuy

+0

StringをListの一部ではないと区別するにはどうすればよいですか?私はこれが実際の問題だと思います。 –

1

をローカル変数への参照を保存し、それがどのように見える、あなたが署名を使用してコールされるメソッドシグネチャ

void methodName(String arg1, List<String> arg2) 

を持っています同様に

void methodName(List<String> arg2) 

メソッドを呼び出すときにシグネチャを一致させる必要があります。したがって、Stringを渡してからリストの最初の引数を渡します。

ので、代わりの

instance.methodName(anInstanceOfList); 

まず同じようにそれを呼び出す私は本当にあなたが望む結果を得るが、 `returnValues(「これはリストの一部ではありませんドント

instance.methodName(aStringValue, anInstanceOfList); 
関連する問題