"상수"값을 고려하십시오 : DefaultEncoding. 일반적으로 우리는 동반자 객체에 추가합니다 : STRLEN 코드 구조에 해당하는 경우 클래스로 필요하기 때문에사례 클래스의 "상수"값
object Strlen {
val DefaultEncoding = "ISO-8859-1"
..
}
그러나, 우리는 동반자 객체의 사용을 피하기 위해 강요/상당의 규칙은 기존의 코드베이스 :
case class Strlen(child: Expression, encoding : Expression) extends UnaryExpression with LengthExpression {
val DefaultEncoding = "ISO-8859-1" // This will not be isible in the following constructor
def this(child: Expression) = this(child, new Literal(DefaultEncoding, StringType))
그런 다음 사례 클래스 내에서 DefaultEncoding '상수'의 구획화를 달성 할 수있는 방법이 있습니까?
이데프 DefaultEncoding = "ISO-8859-1"
그러나이
[info] Compiling 1 Scala source to /shared/spark-master/sql/catalyst/target/scala-2.10/classes...
[error] /shared/spark-master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringOperations.scala:253: not found: value DefaultEncoding
[error] def this(child: Expression) = this(child, new Literal(/* StrConstants. */DefaultEncoding, StringType))
[error]
케이스 클래스 안에 상수를 넣을 수 없다. 이름은 실제로 낙타의 경우 'defaultEncoding'보다 낮아야한다. – samthebest
@ samthebest 네, 저는이 두 가지를 모두 알고 있습니다 - 이것이이 질문의 요점이었습니다. 문제를 해결하는 방법을 알려주십시오. – javadba