2014-05-14 7 views
-1

배열 userSet의 ID가 Int 인 userSet을 반복하려고합니다. 이 오류가 계속 발생합니다. java.lang.Integer를 java.lang.Long으로 캐스팅 할 수 없습니다.java.lang.Integer는 배열이있는 java.lang.Long으로 캐스팅 될 수 없습니다.

간단한 방법이 있나요? 캐스팅 변수는 쉽지만 배열의 모든 변수를 Long으로 변환하는 쉬운 방법이 있습니까? 여기에 Java를 처음 접했습니다. 바로 캐스트 예외을받지 의도 수집

Set <Long> userSet = getUniqueFollowers("/tmp/followers.txt") 

for (long id : userSet) { 
    System.out.println("Starting twitter account: " + id); 
+0

'long'으로 지정하려는 특별한 이유가 있습니까? 왜냐하면 당신은 단지'int'를 사용할 수있는 것처럼 보이기 때문에 작동 할 것입니다. – zneak

+0

첫째, 당신이 분명히 당신을 발견했기 때문에 ** 캐스팅으로 할 수 없습니다. 둘째,'getUniqueFollowers'는 무엇을 반환합니까? ---'Set '? –

+0

또한 'Set'은 배열이 아닙니다 – RichN

답변

0

매개 변수화 콜렉션의 요소의 유형을 알고, 그래서

(당신이 의지에서 매개 변수 유형을 숨길 수 있지만) "무슨 일이 내부에"알고 "정수 세트"는 "longs"세트로 직접 변환 할 수 없습니다. 새 세트를 만들고 요소를 하나씩 채울 수 있습니다.

어쨌든 왜 컬렉션을 Set<Long>으로 전송해야합니까? 왜 Set<Integer> (내가 알기로 - 어떤 메소드의 반환 유형이 무엇입니까?) 또는 앞서 말했듯이 param을 숨기고 Set userSet = ...을 입력 할 수 있습니다.

관련 문제