Título: Duda con instancias en Java Publicado por: alf4139 en 27 Febrero 2018, 20:56 pm Hola a todos , tengo una duda en relacion a un codigo que estoy leyendo, no comprendo bien como funciona la instanciacion en este codigo, por favor si alguien me pueda explicar se lo agradaceria mucho
este codigo no comprendo la linea: cvsubmenu=(MenuSubBeanData)vectorSubMenu.get(n); Código: public Vector obtieneSubMenu (String menuElegido , String submenuElegido, Título: Re: Duda con instancias en Java Publicado por: rub'n en 28 Febrero 2018, 20:29 pm Código
Estas en presencia de un casting explicito (Narrowing Casting) https://docs.oracle.com/javase/7/docs/api/java/util/Vector.html#get(int) (https://docs.oracle.com/javase/7/docs/api/java/util/Vector.html#get(int)) Código
Si usas un IDE y borras justo (MenuSubBeanData) tu ide por medio de Reflection en tiempo de ejecución Runtime debería de quejarse porque el método .get() obtiene el index donde a la vez tiene un Objeto pero no sabe que tipo de objeto en especifico debe asignar,entonces al programador le toca dicha tarea aunque ya los IDE actuales por Reflection lo solucionan En este caso el Object obtenido de que tipo será ? MenuSubBeanData Pero como ? Código Esta linea seguramente crea el Vector de ese tipo con el metodo getAttribute("submenu") Recordando que java es fuertemente tipado Otra manera de saber mas a fondo y con precisión es hacer debugging colando un breakPoint por ejemplo en Código Código
Título: Re: Duda con instancias en Java Publicado por: alf4139 en 3 Marzo 2018, 00:17 am Hola rub'n, gracias por tu respuesta y explicacion, pero sigo con dudas, entiendo que:
Código: request.getAttribute("submenu"); devuelve string, pueden ser varios string que son casteados al mismo tipo del objeto 'vectorSubMenu' que es un Vector, es decir, se obtiene un vector con la coleccion de strings, ¿correcto? La linea: Código: cvsubmenu = (MenuSubBeanData) vectorSubMenu.get(n); entiendo castea un string(un elemento del vector) al tipo 'MenuSubBeanData' pero que obtengo en 'cvsubmenu'?; MenuSubBeanData es una clase que tiene propiedades, getters y setters y demas metodos, que debo interpretar de esa linea mas alla de las correspondencias entre tipos de objetos y sus declaraciones. Digamos que la Clase MenuSubBeanData se defina asi: Código: public class MenuSubBeanData{ |