2017-01-09 2 views
-2

메소드 매개 변수로 StringString<List>을 허용하는 Java 메소드가 있습니다. String을 List의 일부가 아닌 것으로 구분하려면 어떻게해야합니까?Java - 메소드 매개 변수, String 다음에 List

방법 :

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

_ String과 List _을 먼저 받아들이는 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); 

처음처럼 호출하는 문자열 값

instance.methodName(aStringValue, anInstanceOfList);