1
다음 코드를 사용하여 newMethod
메서드를 List
클래스에 추가하려고합니다.List에 새로운 암시 적 메서드를 정의 할 때 오류가 발생했습니다.
implicit class ListCompanionOps(f: List.type) extends AnyVal {
def newMethod(p: String) = {
println(p)
}
}
그러나 컴파일러는 다음과 같은 오류와 불만 : 내가 잘못 뭐하는 거지
$ scalac test.scala
test.scala:3: error: ListCompanionOps is already defined as (compiler-generated) method ListCompanionOps
implicit class ListCompanionOps(f: List.type) extends AnyVal {
^
one error found
?
감사
이제 다른 오류가 발생합니까? 오류 : 최상위 개체에 '암시 적'한정자를 사용할 수 없습니다. 암시 적 클래스 ListCompanionOps [A] (f : List [A]) { ^ 오류가 하나 있음 – simao
예, 매우 성가신 오류입니다. 최상위 레벨이 아닌 다른 곳에 무언가를 넣어야합니다. 당신이 REPL에서 일하지 않는다면 - 작동합니다. 그러나 실제 프로그램에는 없습니다. –
아, 그건 모두 잘못 됐어! 그것은'List.type'에서만 작동합니다. 그러나'object. 감사합니다 – simao