Es posible en Scala definir MyAlias[A]
como un alias para MyClass[String, A]
. Por ejemplo, MyAlias[Int]
se referiría a Map[String, Int]
.Alias de clase en scala
10
A
Respuesta
18
Tenga en cuenta que Map
es un trait
, no un class
.
Todavía se puede crear un alias que utiliza la palabra clave type
:
type StringMap[A] = Map[String, A]
val myMap: StringMap[Int] = Map("a" -> 1)
Esto se puede hacer en el marco de una definición class
, object
o trait
(y en el ámbito de aplicación de cualquier método o expresión).
A veces querrás que el alias sea privado a su alcance de declaración, simplemente como una conveniencia para tu código de implementación. Si desea que el tipo sea utilizable en general, vienen en Package Objects útil:
package object mypackage {
type StringMap[A] = Map[String, A]
}
Debido Map
es un rasgo (y objeto acompañante asociado) y no una clase, no será capaz de utilizarlo directamente para crear instancias:
val myMap = new StringMap[Int]
// error: trait Map is abstract; cannot be instantiated
Si un alias una clase, sin embargo, todavía se puede utilizar la palabra clave new
:
type StringHashMap[A] = HashMap[String, A]
val myMap = new StringHashMap[Int]
Cuestiones relacionadas
- 1. ¿Cómo declaras un alias de tipo en un constructor scala?
- 2. clase o método de alias en java
- 3. Clase de GroovyX.metaClass.getProperty en scala
- 4. Typedef (alias) de una clase genérica
- 5. Alias de nombre de la clase en el método
- 6. Usando directiva para especificar alias de clase en C++/CLI
- 7. Cómo acceder a un método Java estático de Scala dado un alias de tipo para esa clase que reside en
- 8. Alias tipo Scala, incluido el objeto complementario [principiante]
- 9. Usar contexto vinculado en alias de tipo
- 10. Crear un alias de tipo para una clase de plantilla
- 11. Scala: final estático público en una clase
- 12. Función Scala vs clase Dicotomía
- 13. Scala Extendiendo Clase abstracta paramétrica
- 14. Herencia de clase de caso de Scala
- 15. scala - obtener clase de una cadena
- 16. Scala - objeto dinámico/clase de carga
- 17. Modelado con la clase de caso Scala
- 18. Rasgo anidado en el constructor de clase en scala
- 19. Definir un alias para una clase con Razor
- 20. Alias de módulo condicional
- 21. ¿Es aceptable declarar una clase privada como un alias?
- 22. Dos conjuntos de parámetros de constructor en una clase scala
- 23. Extremo exclusivo en la clase de rango de Scala
- 24. tipo de clase como clave en el mapa de Scala
- 25. ¿Definir alias de método en Python?
- 26. uso de "alias" en SQLAlchemy ORM
- 27. Refiriéndose al tipo de una clase interna en Scala
- 28. Usar variables de clase como constantes en Scala
- 29. Restringir la visibilidad constructor de la clase en Scala 2.9
- 30. Intento de inicializar una clase creada por Scala en Java
Gracias, mapa era un mal ejemplo, que quería decir (caso) de clase – iwalktheline