¿Puede una clase anónima declarar sus propios parámetros de tipo?En Java, ¿puede una clase anónima declarar sus propios parámetros de tipo?
Respuesta
Tienes razón, no es posible. Como una clase anónima debe usarse solo una vez, ¿cuál sería el sentido de agregarle parámetros de tipo que nunca podrá usar/heredar? No puede crear una instancia de una clase anónima
más de una vez
desde cualquier otra ubicación de código que la que lo define, y tampoco puede crear una subclase.
Esto es lo que pensé. Gracias. –
En realidad, uno puede crear instancias de una clase anónima arbitrariamente muchas veces, al ejecutar de nuevo la expresión de creación de instancia de clase. – meriton
Uno podría querer usar los parámetros de tipo en el cuerpo de la clase anónima ... – meriton
Nº
No. The Java Language Specification define exhaustivamente los posibles argumentos a una expresión creación de la instancia de clase como sigue:
Una creación instancia de clase expresión especifica una clase para ser instanciada, posiblemente seguido de argumentos de tipo (si la clase que se está instanciando es genérica (§8.1.2)), seguida por (una lista posiblemente vacía) argumentos de valor real al constructor. Es también es posible pasar argumentos explícitos del tipo al propio constructor (si es un constructor genérico (§8.8.4)). Los argumentos de tipo para el constructor siguen inmediatamente la palabra clave new. Es un error en tiempo de compilación si alguno de los argumentos de tipo utilizados en una expresión de creación de instancia de clase son argumentos de tipo comodín (§4.5.1). creación de la instancia de clase expresiones tienen dos formas:
clase no calificado de creación de instancias expresiones comienzan con la palabra clave nueva. Una expresión de creación de instancia de clase no calificada se puede usar para crear una instancia de una clase, independientemente de si la clase es un nivel superior (§7.6), miembro (§8.5, §9.5), local (§14.3) o clase anónima (§15.9.5).
Creación de instancia de clase habilitada Las expresiones comienzan con una primaria. Una expresión de creación de instancia de clase calificada expresión permite la creación de instancias de clases de miembro internas y sus subclases anónimas.
Así, mientras que se pueden especificar los parámetros de tipo real de la super clase o interfaz, o el constructor, no se puede definir otras nuevas. Mientras Concedo que esto podría ser útil en algunos casos raros (porque el nuevo parámetro de tipo podría ser utilizado desde el cuerpo de la clase), hay fácil solución para que:
- colocar la expresión de creación de instancias de clases en un método genérico (la clase anónima verá parámetro de tipo del método de cerco)
- utiliza una clase llamada
Buenas soluciones. +1 –
embargo, hay una manera de utilizar los parámetros.
Cualquier método declarado dentro de la clase anónima puede utilizar los
- propiedades de la clase externa final
- parámetros del método y método final
- variables de
el siguiente código demostrar que
public class Foo
{
private String value = "Hello ";
public void anonymousTest(final boolean asc)
{
final String world = "world";
new Comparable<String>()
{
@Override
public int compareTo(String o)
{
System.out.println(value + world);
int cmp = value.compareTo(o);
return asc ?cmp :0-cmp;
}
};
}
}
Espero que el ejemplo ayude.
- 1. Creando sus propios permisos
- 2. clase anónima de Java que implementa ActionListener?
- 3. ¿Cómo pasar parámetros a la clase anónima?
- 4. ¿Puede una clase anónima de C# implementar una interfaz?
- 5. Serialización de clase anónima en Java
- 6. Clase interna anónima vacía en java
- 7. Nombre de clase de los parámetros de tipo en java?
- 8. ¿Mi clase debe suscribirse a sus propios eventos públicos?
- 9. Construcción de clase anónima
- 10. Java implementa la interfaz genérica de una clase anónima
- 11. ¿Hay una etiqueta genérica "anónima" en C#, como '?' en Java?
- 12. Protección del código de sus propios desarrolladores
- 13. acceso "este" de Java clase anónima
- 14. do interfaces pertenecen a sus propios archivos
- 15. RailsAdmin - Personalización de sus propios filtros
- 16. un ClassCastException acerca clase anónima (Java)
- 17. ordenar por java usando la clase anónima
- 18. ¿Cómo puede una clase anónima usar "extender" o "implementar"?
- 19. Anotar clase interna anónima
- 20. ¿Puede declarar métodos sin parámetros en Java para usar en Scala?
- 21. Acceso campo de una clase anónima exterior de una clase anónima interna
- 22. Xcode 4 ayuda incorporada para sus propios archivos
- 23. ¿Cómo se obtiene una referencia a la clase adjunta de una clase interna anónima en Java?
- 24. Java: clase interna anónima usando una variable local
- 25. ¿Hay algún beneficio al usar getters/setters dentro de una clase para sus propios campos?
- 26. ¿Cómo agregar @SerialVersionUID a una clase anónima?
- 27. Declarar una LinkedList en Java
- 28. Declarar una función anónima dentro de los nuevos stdClass
- 29. ¿Cuándo necesito una clase anónima en C++?
- 30. cruce de clase anónima
¿Podría mostrar algún código (pseudo) para aclarar su pregunta? –
Puede escribir el código para probar esto en <30 segundos y responder su propia pregunta. –
No creo que sea posible, así que no hay sintaxis para eso. Pero, algo así como: 'MyInterface m = new MyInterface() {/ * body * /};' –