2011-07-29 2 views
0

String[] arrayOfString2 =(String[])0;식에서 int에서 String []으로 캐스팅 할 수 없습니다.

위의 행은 형식 변환 오류를 보여줍니다. 하지만 다른 프로그램에서 복사 한 거기에 오류가 없습니다. 내가 무엇을 할 수 있을지?

+0

불가능합니다. 복사 한 프로그램이 Java로 작성 되었습니까? – slaphappy

+0

여기에서 실제로 달성하려는 것은 무엇입니까? 문자열 배열에 정수 배열? –

답변

3

int (귀하의 경우에는 0)을 문자열 배열로 전송할 수 없습니다. 다른 코드는 아마도 문자열 배열에 o 또는 덜 O이 될 가능성이 있습니다.

변수를 콘솔에 인쇄하여 클래스와 값이 특정 유형으로 형변환 될 수 있는지 확인하십시오. 당신은 자바에 String[]int 캐스팅 할 수

System.out.println("variable: " + var); 
String[] arrayOfStrings = (String[])var; 
1

:처럼 뭔가. 당신은 결코 할 수 없을 것입니다.

이유는 Java가 strong typing입니다.

다른 코드가 컴파일 된 것으로 생각하지 않습니다.

0

이 코드는 Groovy에있을 것입니다. Java에서는이 코드를 사용할 수 없습니다.

0

String[]으로 전송하려는 Object의 유형에 대한 추가 정보를 제공해야합니다. 다른 사람들이 당신이 String[]에 (귀하의 경우 0에)를 int 캐스팅 할 수 없기 때문에 작동하지 않습니다

String[] arrayOfString2 =(String[])0; 

을 지적으로

.

우연히 o이 아니고 0을 쓰고 싶습니까? 만약 당신이 평균 o을했고 실제로는 String[]이라면 시도한 방법으로 그것을 캐스팅 할 수 있어야합니다. 다음과 같이 컴파일합니다. String[]Object으로 선언하면 나중에 캐스팅 할 수 있습니다. .

Object o = new String[0]; 
String[] arrayOfString2 =(String[])o; 

이것은 어떤 요소에도 공백이 없기 때문에 그리 유용하지는 않지만. 대신 당신은 이미 말했듯이, 자바에서는 유효하지 않습니다,

String[] arrayOfString2 = new String[sizeOfArray]; 
0

이 코드를 할 수 있습니다.
아마해야합니다 :

String[] arrayOfString2 = null; 

단지 추측이가 무엇인지 모른 채.

관련 문제