2010-12-29 4 views
0

다른 답변의 누군가가 코드를 게시했습니다.변수 유형 정의와 다른 점은 무엇입니까?

List<ISpeak> animalsThatTalk = new ArrayList<ISpeak>(); 

<>는 무엇을합니까?

업데이트

두 번째 예제가 컴파일되지 않는다는 것을 알고 있습니다 ... 혼란으로 인해 제 질문을 수정했습니다.

+3

두 번째 예제는 컴파일하는 것조차 거의하지 않습니다. – Falmarri

+1

무엇? 나는 당신이 괄호로 무엇을하려하는지 이해하지 못합니다. –

+0

어? 두 번째 예제에서는 구문을 얻지 못합니다. 'List animalsThatTalk = new ArrayList ();'을 의미하지 않았습니까? – birryree

답변

0

유형 매개 변수에는 꺽쇠 괄호 (<...>)가 사용됩니다. 유형을 입력해야합니다 (예 : Integer 또는 String입니다. 값 매개 변수에는 둥근 괄호가 사용되고 값을 입력해야합니다. 1 또는 "Hello World".

예 :

new ArrayList<String>(3) 

이 초기 용량 3. String와 문자열의 새로운리스트를 정의는 입력 파라미터이다. 3은 값 매개 변수입니다.

0

이것은 언어의 구문 일뿐입니다. 두 번째 것은 자바와 같이 거의 유효하지 않지만, D와 같은 언어로 컴파일 될 것입니다. 바로 그들이 어떻게 결정했는지, 그것이 옳지 않거나 잘못되었습니다. 그들은 변수가 아니기 때문에 형식 인수를 캐럿에 넣기로 결정했기 때문에 일반적인 인수와는 다릅니다.

+0

거의 Vb.net도! – asawyer

+0

예, 잊어 버렸습니다. :) – Mehrdad

1

귀하의 질문은 <> vs()의 사용에 관한 것 같습니다. 컬렉션은 일반적으로 컬렉션의 매개 변수 또는 유형을 지정해야합니다. <>이이를 수행하는 데 사용됩니다. 귀하의 예제에서 그래서

입력 ISpeak의 목록이

List<ISpeak> 

당신은 또한 정수

List<Integer> 

<의 목록을 만들 수 있습니다 생성되는> 단순히 당신의 유형을 정의 할 수 있습니다 컬렉션에 포함될 개체입니다.

List (Speak) animalsThatTalk 

가 컴파일되지 않습니다 두 번째 예. 컴파일러는 Speak라는 인수를 사용하여 List 함수를 호출하려고 시도합니다.

+2

두 번째 컴파일은 Java로 컴파일되지 않습니다. 당신은 C# 프로그래머입니까? – BalusC

+0

사실, 내 Java 친구에 대한 고정. –

+0

그래서이 예제에서'List'가 배열이라면,'List '은 그 배열의 값을 정수로 정의 할 것입니까? – Webnet

관련 문제