제네릭에 대한 Java 공식 자습서를 읽는 동안 다음 T과 같이 'and'연산자 ( &) 를 사용하여 클래스 및 / 또는 더 많은 인터페이스를 확장하기 위해 유형 인수 (이 경우 )를 제한 할 수 있음을 발견했습니다 .
<T extends MyClass & Serializable>
나는 대체 &에 ,(실수로 여전히 작은 경고와 함께 작동).
제 질문은이 둘 사이에 차이점이 있습니까?
<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
그리고 예제 방법 :
static <T extends MyClass & Serializable> ArrayList<T> fromArrayToCollection(T[] a) {
ArrayList<T> arr = new ArrayList<T>();
for (T o : a) {
arr.add(o); // Correct
}
return arr;
}
5
@Doorknob OP가 키보드와 사용중인 것과 동일한 키보드를 사용하고 있다고 가정합니다.
—
emory
@emory 나는 그것이 방향이 틀렸다고 생각한다. 오류는 그의 손가락이 아니라 그의 뇌에 있었다. 마치 Java 소스 파일에서 'import'대신 'include'를 사용하려고 시도한 것과 유사합니다. 뇌가 잘못된 것을 입력하라고 말했기 때문에 '포함'을 잘못 입력했는데, 이는 여러 가지 이유로 가능합니다.
—
Nick Pickering
@Nicholas Pickering이 맞습니다! 저에게는 키보드 때문이 아니라 뇌 때문이었습니다. 클래스가 구현하는 인터페이스를 작성할 때 쉼표로 구분합니다.
—
Alin Ciocan 2013-08-23