elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Plantillas en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Plantillas en Java  (Leído 11,434 veces)
camilortte

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Plantillas en Java
« en: 6 Marzo 2012, 18:48 pm »

Buen día a todos:  :D

les comento que , eh tenido problemas para manejar, digamos  de alguna forma tipos de datos genéricos. Personalmente en c++ lo lograba por medio de plantillas (templates) de la siguiente forma:

Código:
#include <iostream>

using namespace std;

template <typename T>
T mayor(T a, T b){
    if(a > b){
        return a;
    }else {
        return b;
    }
}

int main(int argc, char **argv)
{
    cout<<mayor("perro","gato")<<endl;     
    cout<<mayor(5,3)<<endl;
    cout<<mayor(4.23,5.69)<<endl;
    return 0;
}

esto me da como resultado:
perro
5
5.69

de esta forma , manejaba casi cualquier tipo de dato siendo muy sencillo.

ahora lo estoy intentando hacer en java , con la clase Object de esta forma:

Código:
package paquete;

public class GenericaMayor {   
    public Object mayor(Object valor1,Object valor2){
        if(valor1 >= valor2){        //aca el error.
            return valor1;
        }else{
            return valor2;
        }   
    }
}

pero eh tenido problemas en compilación..

la cuestión es ¿como puedo hacer esto que hacia en c++ , pero en java?. :huh: :huh: :huh:


gracias de antemano , saludo a todos.




En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Plantillas en Java
« Respuesta #1 en: 7 Marzo 2012, 04:52 am »

Aquí se les llama "clases genéricas".

En realidad es muy sencillo, un ejemplo:

Código
  1. class MyGeneric {
  2. public static void main(String ... args) {
  3. Integer x = 123;
  4. Perro<Integer> dog = new Perro<Integer>(x);
  5. System.out.println(dog.getValue());
  6. }
  7. }
  8. class Perro<T> {
  9. T myValue = null;
  10.  
  11. public Perro(T t) {
  12. myValue = t;
  13. }
  14.  
  15. public void setValue(T t) {
  16. myValue = t;
  17. }
  18.  
  19. public T getValue() {
  20. return myValue;
  21. }
  22.  
  23. }
  24.  


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
camilortte

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Plantillas en Java
« Respuesta #2 en: 9 Marzo 2012, 02:28 am »

gracias por contestar.

la cuestión es que con la clase genérica , no puedo hacer comparaciones de mayor y menos entre tipos de datos, o no se si me complique.

la única forma de que pude sacar una plantilla presida a la del la función en c++ es así:

Código:
package paquete;

public class Generica  {

public <T extends Comparable> T generico(T valor1,T valor2){
if(valor1.compareTo(valor2)== 1){
return valor1;
}else{
return valor2;
}
}

}
 

así de esta forma ya puedo utilizar los métodos compareTo asiendo así una verdadera comparación.

pero no se si esto es lo mas "limpio" para esta solución.

saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
plantillas tmpgenc
Multimedia
Cobac 2 3,449 Último mensaje 19 Enero 2004, 18:24 pm
por Cobac
Plantillas Flash
Diseño Gráfico
[ Alberto] 2 3,216 Último mensaje 29 Mayo 2004, 15:42 pm
por [ Alberto]
Plantillas Web
Diseño Gráfico
_dark_day_ 3 2,835 Último mensaje 11 Noviembre 2004, 19:24 pm
por p47
Plantillas XML y PHP
PHP
P[i] 4 3,759 Último mensaje 5 Junio 2008, 03:25 am
por ActiveSheet
(Ayuda) Plantillas en java
Java
Seyro97 4 2,675 Último mensaje 5 Abril 2015, 17:09 pm
por Seyro97
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines