2011-07-17 5 views

Respuesta

25

Si desea que los parámetros Contructor estén disponibles como campos de la clase, usted tiene que declarar como vals o VARs:

class SimpleClass (val myInt: Int, val myString: String) { 

} 
+3

o declarar la clase como "clase caso", donde se obtiene ese tipo de cosas gratis. –

+0

'case class' está más cerca de POJO; mira esto para más detalles: http://stackoverflow.com/questions/9673233/how-is-the-pojo-javabean-pattern-treated-in-scala – Neil

15

Para el pleno POJO experiencia ™, incluyendo la igualdad, hashcodes y la aplicación sensata de toString ... Usted querrá clases de casos:

case class SimpleClass(myInt: Int, myString: String) 

val mySimple = SimpleClass(1, "hi") 
println(mySimple.myInt) 

parámetros a una clase de casos se realizan automáticamente en Vals. Usted puede explícitamente hacerlos vars si lo desea, pero este tipo de cosas son generalmente desaprobadas en Scala, donde los objetos inmutables son favorecidos.

3

El problema es que llama al método getter SimpleClass.myInt, pero no definió un método getter en ninguna parte. Es necesario definir el método SimpleClass.myInt captador o incluso mejor aún, obtener Scala para definir automáticamente por usted:

class SimpleClass(val myInt: Int, myString: String) {} 
21

La java equivalente de su definición Scala es:

public class SimpleClass { 
    public SimpleClass(int myInt, String myString) { 
    } 
} 

No se pregunta que doesn' t trabajo ...

Hola amigo, esa es tu 17ª pregunta de Scala y todavía te preocupan los conceptos básicos del idioma. Tal vez debería tomar una tarde y leer algunos de los tutoriales en línea (o algún libro) para consolidar su conocimiento. Puedo sugerir:

+9

+1 por "Hey amigo" :-) – Landei

Cuestiones relacionadas