0
키 값 쌍을 사용하는 클래스가 있습니다.이 클래스는지도 객체 또는 사례 클래스의 형태로 제공 될 수 있습니다. 다음 추상화를 정의 할 수 있습니다.기존 클래스를 스칼라로 특성 구현
trait Reportable {
def getAttributes : Map[String,Any]
}
List [Reportable]을 취하는 메소드가 필요합니다. 보고에 대한 가능한 구현은 다음과 같습니다
- 지도의 구현은 단지 자체
- 나는 경우 클래스에서 속성을 가지고지도 에 넣어 리플렉션을 사용하여 무언가를 사용할 수있는 경우 클래스가 될 것입니다
문제는 내가 어떻게 제품 (모든 사례 클래스의 기본 클래스) 및지도 클래스 내 특성을 구현하는 알아낼 수 없습니다. 기존 클래스를 가져 와서보고 가능한 특성을 혼합하여 클래스가 이미 가지고있는 메소드 측면에서 구현할 수 있기를 원합니다.
불법 상속을 시도 할 때 오류가 발생합니다. 슈퍼 클래스 AnyVal 은 슈퍼 클래스의 서브 클래스가 아닙니다. Object mixin 특성 Reportable 암시 적 클래스 MapReportableOps (private val 기본 : Map [String, Any])는 Reportable {로 AnyVal을 확장합니다. 나는 scala에있다. 2.11 –
그냥'extends AnyVal'을 제거하라. –