Myślę, że łatwiej jest pokazać na przykładzie.scala: prevent companion Object from chiding definition of original Class
Powiedzmy mam klasę case Stan, z obiektem Stan towarzysz wykorzystane do zapewnienia alternatywnego konstruktora, tak:
case class Condition(
field: String,
values: List[String])
}
object Condition {
def apply(field: String, value: String): Condition = {
Condition(field, List(value))
}
}
Kiedy zaimportować go z innego pojawia się następujące ostrzeżenie (który ostatecznie okazuje do błędu):
import utils.query.Condition
[warn] [...]/ConditionBuilder.scala:14: imported `Condition' is permanently hidden by definition of object Condition in package query
[warn] import utils.query.Condition
[warn] ^
[warn] one warning found
Chcę mieć dostęp do stanu Type, gdy declargin typ zmiennej, a do obiektu towarzysz podczas wykonywania jednej z nich znajduje się metody
Czy jest jakiś sposób osiągnięcia tego i uniknięcia tego ostrzeżenia (oprócz zmiany nazwy obiektu towarzyszącego, oczywiście)?
Którą wersję kompilatora Scala używasz? –
Czy mogę zapytać, czy warunek jest zdefiniowany w zapytaniu pakietowym przez przypadek? W takim przypadku po prostu upuść import i gotowe. –
Używam kompilatora scala, który jest dostarczany w pakiecie z grą 2.0.3: Witamy w Scala w wersji 2.9.1.final (Java HotSpot (TM) 64-bitowa maszyna wirtualna, Java 1.7.0_06). – opensas