我有一个Java方法,它接受String
和String<List>
作为方法参数。如何区分String和不属于List?
方法:
void returnValues(String sensor, List<String> attributes)
呼叫:
nexaConnect.returnValues(Arrays.asList("19455746", "blobJson", "deviceMfg", "eventCode", "sensorClass", "sensorUUID", "timeStamp", "uID"));
我能看到的唯一可能的工作是删除第一个String并在List中包含值,然后获取列表的第一个值并以这种方式使用它。有没有办法将它们分开,以便它不属于列表?
答案 0 :(得分: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);
答案 1 :(得分:1)
目前,您有一个方法签名
void methodName(String arg1, List<String> arg2)
您使用类似于
的签名进行呼叫void methodName(List<String> arg2)
调用方法时需要匹配签名,因此传递一个String有第一个参数然后传递给列表。
所以不要把它称为
instance.methodName(anInstanceOfList);
首先传递一个String值
instance.methodName(aStringValue, anInstanceOfList);