2012-06-26 2 views
1

호출시 Object를 리턴하는 메소드를 사용하고 있습니다. 해당 객체의 유형은 java.util.Collections.unmodifiableSet입니다. 컬렉션에는 하나의 값만 있으며, 다른 메소드에 액세스하여 피드해야합니다.콜렉션 인 객체의 값 얻기

Object o = table.getValue().toString(); 

을이 컬렉션이기 때문에 []에 둘러싸여 값을 반환 문제는이 일을하는 것입니다. 다른 메서드는 Object 유형 매개 변수로 호출해야합니다.이 매개 변수는 []가없는 값이어야합니다. 나는 정규 표현식으로 대괄호를 제거함으로써 작업을 수행하고 있지만 컬렉션을 적절한 유형으로 캐스팅하여 작업을 수행하고자한다.

+0

'toString()'이 하나의 메소드입니다. 오타입니까? – amit

+0

예, 편집 된 오타가 있습니다. –

+0

당신은 .toString()을 할 필요가 있습니다. 그냥 그대로 메서드 – Ahmad

답변

1

을 추가 덧붙였다 컬렉션의 반복자의 첫 번째 값을 반환합니다

String result = ((Collection) table.getValue()).iterator().next().toString(); 

합니다. (table.getValue()이 컬렉션을 반환한다고 가정)

+0

이것은 수행합니다. Andreas에게 감사드립니다. 이 솔루션은 훌륭한 1 라이너이며 내가 필요한 것을 정확히 달성합니다. –

0

당신이이 컬렉션은 하나의 값이 포함되어 있는지 알고 있다면 당신은 다음과 같이 그것을 할 수 : 컬렉션에 하나 개 이상의 값을 포함 할 수없는 경우

String result = null; 
Collection collection = (Collection)table.getValue(); 
for(Object o : collection) { 
    result = o.toString(); 
    break; 
} 

, 당신은 break

result = o.toString(); 후 희망을 제거 할 수 있습니다 도움이됩니다.


편집 : 수정, 컬렉션은 이제 테이블에서 검색됩니다. 컬렉션에 캐스팅 당신은 반복자 사용할 수있는 휴식

+0

테이블에있는 항목의 양 (수만)이 시점에서 문제가되지 않기 때문에 내가 어떻게 도움이 될지 모르겠지만 .toString()은 실제 값을 대괄호 []로 계속 유지합니다. o는이 시점에서 Collection이므로 arrayList 또는 이와 비슷한 형식으로 형변환해야하지만 간단한 방법으로 변환하는 방법을 알지 못합니다. 또한 table.getValue()의 반환 유형은 Collection이 아닌 Object입니다. –

+0

table.getValue()는 행의 "식별자"만 반환합니다. 어떤 이유로 인해 Collection 유형에 영향을 미치지 않습니다. –

+0

Teemu, * your * 코드에서'o'는 결코 콜렉션이 아니라 String입니다.) - 그러나 오타 일 수도 있습니다. –