2014-02-15 1 views
0

내가하는 방법으로 자바 클래스 "자바 Class"가 :스칼라에서 <? 확장 푸>

boolean addAll(java.util.Collection<? extends java.lang.Integer> collection) { ... } 

내가 구현하지 않고이 방법을 포함하는 스칼라 형질 MyTrait를 만들 필요가 뭔가 그래서

def addAll[A<:java.lang.Integer](coll: java.util.Collection[A]) : Boolean 

같은 그 구현은

class MyClass extends JavaClass with MyTrait 

추상되지 않을 것입니다. 그러나 Trait에서 Java 서명과 일치하는 방법을 찾아 낼 수는 없습니다.

FWIW ... Trove에 대한 고성능 스칼라 컬렉션 호환 래퍼를 작성하려고합니다. 제네릭이 제네릭에서 고성능을 제공하는 것을 피하지만 각 기본 유형에 매우 일관된 인터페이스를 사용했습니다. 나는 일반적으로 특성이 유형 독립적 인 데 미 인터페이스를 모델링하는 데는 잘 작동한다는 것을 알았지 만,이 특정 시그니처를 표현하는 방법을 알아낼 수는 없습니다. 현재 사용하고있는 유형 추상화를 무시하고 있습니다. 에 대한 특성.

+1

Collection[_ <: java.lang.Integer] 동기는 거의 항상로 점점 가치가

Collection[T] forSome {type T <: java.lang.Integer} 

또는 자리 구문을 사용하는 것과 같습니다! –

+0

@RandallSchulz 오케이, 당신이 요청했습니다 ;-) - 업데이트 된 게시물보기. –

+0

나는 Trove를 사용했다. 이에 대한 스칼라의 답변은 * 전문화 *로 알려져 있으며, 컴파일러에서 지정된 기본 유형마다 대상 엔티티의 개별적인 오버로드를 작성하도록 알리는 데 '@ specialed'주석이 사용됩니다. –

답변

3
자바

Collection<? extends java.lang.Integer> 스칼라