Título: Obligar a una clase a tener un cierto método estático. Publicado por: niano en 4 Agosto 2023, 10:29 am Hola.
Quisiera saber si es posible obligar a una clase a tener un método estático que encaje en un cierto patrón. Me explico. Por ejemplo, imaginemos que tenemos una clase "Entero" que pretende implementar las operaciones con números enteros y que tiene un método estático llamado "suma", que básicamente devuelve la suma de dos números enteros pasados por parámetro y cuya declaración es del tipo: Código
También podríamos tener una clase "Real" que pretenda implementar las operaciones que se pueden hacer con números reales y que podría tener declarado un método "suma" tipo: Código
Pues bien, me gustaría poder trabajar con una clase que trabaje con elementos de una clase genérica que obligatoriamente tenga declarado un método de este tipo sin importar que sean enteros, reales o lo que sea... Por ejemplo, imaginemos que queremos declarar una clase "Vector", que contendrá elementos de una clase genérica (que pueden ser enteros o reales) y queremos definir la suma de vectores a partir de la suma de sus elementos. Algo así: Código
Mi intento ha sido el de declarar una interfaz "Grupo" de la siguiente manera: Código
Y luego la clase "Entero" declararla así: Código
Pero no funciona... En la interfaz Grupo, en la línea del método "suma", me sale un error que dice que "un tipo de variable no estático como "TipoGrupo" no se puede referenciar desde un entorno estático" lo cual tiene su lógica, y otro error que dice que "falta el cuerpo del método o declararlo abstracto". Si lo declaro abstracto el primer error se mantiene y aparece otro que dice que es ilegal combinar los modificadores static y abstract. ¿Realmente se puede obligar a que una clase tenga un método estático que encaje en una cierta declaración? Gracias de antemano por la ayuda. Un saludo. Título: Re: Obligar a una clase a tener un cierto método estático. Publicado por: rub'n en 4 Agosto 2023, 10:44 am Creo que hay terminos un poco, raros que quieres aplicar.
Puedes tranquilamente usar una interface "Grupo" con un método default es decir con implementación por defecto. Código
Hay tienes una variante, Los métodos default puedes invorcalos solo si "tu" quieres y en métodos no static, como en la línea "15" y "20" Y estoy seguro que esto no te ayudara, jaja, porque tienes la mente en sobreComplicar las cosas ya mismo, a veces los genericos sobre complican las cosas en ciertos casos. Para lo que quieres hacer es mejor especificar y listo, por existe la clase Interger, Double, Long, etc, especificaciones para estos casos. Título: Re: Obligar a una clase a tener un cierto método estático. Publicado por: niano en 4 Agosto 2023, 15:48 pm Hola.
Creo que hay terminos un poco, raros que quieres aplicar. Puedes tranquilamente usar una interface "Grupo" con un método default es decir con implementación por defecto. Código
Hay tienes una variante, Los métodos default puedes invorcalos solo si "tu" quieres y en métodos no static, como en la línea "15" y "20" Y estoy seguro que esto no te ayudara, jaja, porque tienes la mente en sobreComplicar las cosas ya mismo, a veces los genericos sobre complican las cosas en ciertos casos. Para lo que quieres hacer es mejor especificar y listo, por existe la clase Interger, Double, Long, etc, especificaciones para estos casos. ;D ;D ;D Gracias igualmente por la ayuda, el problema es que necesito que devuelva un tipo genérico. En ocasiones necesitaré que sea un tipo que no tiene nada que ver con las clases Integer, Double, etc. Creo que simplemente renunciaré a las versiones estáticas y lo haré todo a partir de métodos no estáticos, que con eso me funciona bien. Gracias. Un saludo. Título: Re: Obligar a una clase a tener un cierto método estático. Publicado por: rub'n en 4 Agosto 2023, 19:22 pm Hola. ;D ;D ;D Gracias igualmente por la ayuda, el problema es que necesito que devuelva un tipo genérico. En ocasiones necesitaré que sea un tipo que no tiene nada que ver con las clases Integer, Double, etc. Creo que simplemente renunciaré a las versiones estáticas y lo haré todo a partir de métodos no estáticos, que con eso me funciona bien. Gracias. Un saludo. Claro lo simple seria el Código
Y si le das fuerte la linea 7 y 8 mete interfaces funcionales ya creadas para problemas comunes. Título: Re: Obligar a una clase a tener un cierto método estático. Publicado por: niano en 4 Agosto 2023, 23:22 pm Exacto. Algo así haré. Muchas gracias. ;)
|