2017-01-09 51 views
-2

我有接受StringString<List>作爲方法參數的Java方法。我如何區分字符串不是列表的一部分?爪哇 - 方法參數,字符串後面列出

方法:

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

電話:

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

唯一可能的解決辦法,我可以看到的是,除去第一串和包括列表中的值,然後得到的第一個值清單並以這種方式使用它。有什麼辦法將它們分開,使它不在列表中?

+2

我不真正得到你想要的東西,但'returnValues(「這不是列表的一部分「,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'將是另一種選擇,考慮到'List'只爲方法調用初始化,如果它不是一個簡單的示例調用,並且它不需要修改一個可能通過的'List'引用。這樣'Array.asList'調用可以被刪除。 – SomeJavaGuy

+0

如何區分不屬於列表的字符串?我認爲這是真正的問題。 –

1

現在,你有一個方法簽名

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

你是使用簽名通話類似

void methodName(List<String> arg2) 

當你調用一個方法時,你需要匹配簽名,所以傳遞一個String有第一個參數,然後是列表。的

所以與其說這像

instance.methodName(anInstanceOfList); 

首先傳遞一個字符串值

instance.methodName(aStringValue, anInstanceOfList);