2012-07-04 3 views
1

누군가는 중요성이 서명<T> T [] toArray은 (T 배열은 [])

<T> T[] toArray(T array[]). 

내가 <T> 제네릭 나타내는 알고에 <T>의 무엇 자바 컬렉션 프레임 워크에 대해 설명 할 수 있습니다. 그러나 예를 기반으로하는 정교한 설명은 많은 도움이 될 것입니다.

+0

하지 않기 때문에 하나

f("dog") 

하지만 g("dog")를 호출 할 수있다. 도움이 될 것입니다 [link] http://www.tutorialspoint.com/java/util/linkedlist_array.htm – Theja

+0

[documentation] (http://docs.oracle.com/javase/1.5.0/docs/api)를 읽으십시오. /java/util/ArrayList.html#toArray%28T%5B%5D%29) 여기에 답을 작성하십시오. 팁은 제네릭 메소드와 비 제너릭 메소드의 설명을 비교하는 것입니다. – Brad

답변

4

이 방법을 사용하면 필요한 유형의 배열을 만들 수 있습니다. 기본 ToArray()는 Object []를 반환합니다. String 목록이있어 문자열 []을 원할 경우 성가신 방법입니다. 예를 들어

:

List<String> list = new ArrayList<>();   
list.add("A"); 

String[] listToArray; 
listToArray = list.toArray(); // This won't compile as to Array gives Object[] 

listToArray = list.toArray(new String[list.size()]); // This works when I want String[] 
2

<T> 자바가 말하는 방법은 "다음 메소드 선언에서, T일반적인 매개 변수보다는 이름 T특정 클래스입니다

.

예 :

class T { 
    public int x; 
} 

<T> T f(T x) { return x; } 

T g(T x) { return new T(); } 

f 메서드는 모든 유형의 인수 (예 : String)와 함께 사용할 수 있지만 g은 위에 정의 된 T 클래스의 인수 만 전달할 수 있습니다. 즉 문자열이 예와 설명을 찾아이 링크에서는 T.

Runnable example at ideone showing how f and g are used.

관련 문제