[SCALA] 스칼라는 일반적인 특성과 개체를 확장
SCALA스칼라는 일반적인 특성과 개체를 확장
나는 스칼라를 사용하고 있는데 나는 데이터 구조와 같은 몇 가지 방법을 제공하는 특성,와 (싱글) 객체를 확장 할 :
trait Tray[T] {
val tray = ListBuffer.empty[T]
def add[T] (t: T) = tray += t
def get[T]: List[T] = tray.toList
}
그리고 나는, 혼합하는 특성 객체로, 다음과 같이 싶습니다 있습니다 :
object Test with Tray[Int]
그러나 추가 및 GET의 타입 불일치가있다 :
Test.add(1)
// ...
어떻게이 작업을 얻을 것이다 할 수 있습니까? 또는 내 실수는 무엇인가?
해결법
-
==============================
1.문제는 당신이 추가에 T와 특성의 유형 매개 변수를 그림자과 방법을 얻을 수있는 것입니다. 이 문제에 대한 자세한 내용 여기 내 대답을 참조하십시오.
문제는 당신이 추가에 T와 특성의 유형 매개 변수를 그림자과 방법을 얻을 수있는 것입니다. 이 문제에 대한 자세한 내용 여기 내 대답을 참조하십시오.
여기에 올바른 코드는 다음과 같습니다
trait Tray[T] { val tray = ListBuffer.empty[T] def add (t: T) = tray += t // add[T] --> add def get: List[T] = tray.toList // get[T] --> add } object Test extends Tray[Int]
혼자 여기 작동하지 않는 이유에 대한 설명은 사양의 섹션 5.4을 정의-참조 객체 연장의 사용을합니다.
from https://stackoverflow.com/questions/14023712/scala-extend-object-with-a-generic-trait by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] ImageIO.write를 사용하여 품질 손실 (0) | 2019.11.24 |
---|---|
[SCALA] SBT의 DependsOn RootProject는 : 종속성을 컴파일되지 않습니다 (0) | 2019.11.24 |
[SCALA] 아파치 스파크에서 여러 파일이 포함 된 우편을 읽는 방법 (0) | 2019.11.24 |
[SCALA] 어떻게 아파치 스파크에서 RowMatrix의 역을 계산하기? (0) | 2019.11.24 |
[SCALA] SPARK에서 왼쪽 및 오른쪽 키워드를 사용하는 방법 SQL (0) | 2019.11.24 |