Creo que es más fácil mostrarlo con un ejemplo.scala: prevent companion Objeto de la definición oculta de la clase original
Digamos que tengo una clase caso Condiciones, con un objeto Condición compañero utiliza para proporcionar una constructora alternativa, como esto:
case class Condition(
field: String,
values: List[String])
}
object Condition {
def apply(field: String, value: String): Condition = {
Condition(field, List(value))
}
}
Cuando la importación desde otro me sale el siguiente aviso (que con el tiempo se vuelve en un error):
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
quiero tener acceso a la clase de condición, cuando declargin el tipo de una variable, y al objeto de compañía, al ejecutar uno de los métodos es
¿Hay alguna manera de lograr esto y evitar esta advertencia (aparte de cambiar el nombre del objeto complementario, por supuesto)?
¿Qué versión del compilador de Scala está utilizando? –
¿Puedo preguntar si la condición se define en la consulta del paquete por casualidad? En este caso, simplemente suelte la importación y listo. –
Estoy usando el compilador scala que viene con los juegos 2.0: Bienvenido a Scala versión 2.9.1.final (Java HotSpot (TM) 64-Bit Server VM, Java 1.7.0_06). – opensas