2012-06-23 5 views
2

일반적인 유형의 배열을 만드는 방법은 무엇입니까? 일반 Arrays.copyOf() 방법은 어떻게 작동합니까? generic 배열의 복사본을 반환합니다. 따라서 일반적인 배열을 만들 수 있습니다. 그러나 어떻게? copyOf()과 비슷한 방법을 쓰려면 어떻게해야합니까? 당신이 바로 그 순간의 유형을 알고 적어도 필요한 런타임에를 만들어야합니다, 그래서 당신은 다음과 같은 방법을 사용할 수 있다면제네릭 형식의 배열을 만드는 방법은 무엇입니까?

+1

[Arrays.copyOf()] 소스 코드 (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/)를 살펴 보는 것만으로도 충분하지 않습니다. util/Arrays.java # Arrays.copyOf % 28java.lang.Object % 5B % 5D % 2Cint % 2Cjava.lang.Class % 29)? –

+1

이 질문을 참조하십시오 : http://stackoverflow.com/questions/529085/java-how-to-generic-array-creation?rq=1 – DNA

답변

6

는 : T은 일반 유형이

a = (T[]) Array.newInstance(c,s); 

, c는 클래스입니다 Ts의 초기 크기입니다.

문서 here

-2

는 당신이 요구하는지에 대한 혼란 스러워요,하지만 난 대답을 내 최선을 다할 것입니다.

제네릭 형식의 배열을 만들려면 배열을 포함하는 클래스를 generic으로 매개 변수화해야합니다. 예를 들어,이 작품 : 당신이 당신의 질문은 더 구체적인 만들면 내가 할 수있을 수 있지만 대부분의 경우

class MyClass<T> { 

     T[] myGenericArray; 

} 

, 나는, 당신은 객체 [] 또는 성격의 무언가에 의해 달성 될 수 무엇을하고 있는지 내기 더 많은 도움을 제공하십시오.

+0

"this works"아니요. 제네릭을 읽고, Java에서 삭제 및 배열을 입력하십시오. – missingfaktor

+1

@missingfaktor : 주어진 선언에 아무런 문제가 없습니다. 단지 질문 (실제로 배열을 만드는 방법)에 대답하지 않습니다. – user102008

관련 문제