Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - rub'n

#541
Java / Re: Ayuda con codigo Java
27 Abril 2019, 21:55 PM
Cita de: Beginner Web en 27 Abril 2019, 21:52 PM
Esta bien lo que dices pero yo quiero trabajar sin Generics  :laugh:

No se recomienda eso.
#542
que tal chavales pues tengo lo siguiente

Código (vbnet) [Seleccionar]
Dim message, sapi
message="niño algo con ñ"
Set sapi=CreateObject("sapi.spvoice")
sapi.Speak message


Necesito reproducir las ñ, pero no lo logro  :-\
#543
Dudas Generales / Re: Quiero presentarme
27 Abril 2019, 20:35 PM
Cita de: tioguay68 en 27 Abril 2019, 20:30 PM
pero en tu opinion el mas facil
y una pregunta: como guardo algun post que me guste para verlo cuando quiera?

* lenguaje facil no existe, todos requieren practica

* copia el enlace del post y enviatelo por mensaje privado, o añadelo a favoritos a tu navegador, por los momentos esto es lo unico que se me ocurre


#544
Interesante un efecto de animación de css jajej, en pc se ve tal cual como en la película, en la versión de Google Chrome de Android no tanto.

Pero muy bien.

Por cierto ayer vi, End Game, fue brutalll socio , unas de las mejores peliculas jamas y nunca antes vista por un ser tan patético como yo XD .
#545
Java / Re: Ayuda con codigo Java
27 Abril 2019, 16:05 PM
Cita de: Beginner Web en 27 Abril 2019, 05:19 AM
A mi me surgió una duda acerca de su problema, soy novata en Java y queria saber si se puede modificar el valor de un objeto sin Generics en ArrayList por ejemplo esto

Código (java) [Seleccionar]
List lista = new ArrayList();

lista.add(1);//<-¿Este valor se puede incrementar?
lista.add(cualquierCosa);


Si podrías incrementarlo como lo tienes en el código con

Código (java) [Seleccionar]
listaInteger.set(0, listaInteger.get(0) + 1);

O, tomando lo que dice WHK, pero no exactamente así, sino

Código (java) [Seleccionar]
Integer value = (Integer) listaInteger.get(0); //cast debido a falta de tipo parametrizado
++value;  //Operador de preincremtento, tambien con postIncremento value++;
listaInteger.set(0, value);


Importante

en versiones anteriores a java 5, tu podías escribir tranquilamente ese tipo de lineas

Código (java) [Seleccionar]
List lista = new ArrayList();

y tener la esperanza de que los programadores que usen tu código, recuerden que tu quieres, únicamente Objetos Integer en ella.

Eso requiere un poco de análisis mental y tiempo, no se tendría una vía especifica para conocer el nombre esperado, es decir, si sera un Integer, Double, o hasta, String a StringBuilder.

desde Java 5, tu puedes documentar logrando una interpretación mas fácil a los demás, ese feature se llama generics, el compilador incluso ayuda a que cumplas esa suposición

quedando


Código (java) [Seleccionar]
List<Integer> lista = new ArrayList<Integer>();

Cuando la versión java 7 se libero, se logro una versión mas corta,

Código (java) [Seleccionar]
List<Integer> lista = new ArrayList<>();

la forma resumida, utiliza el operador diamante, se llama así porque <>, parece un diamante si inclinas tu cabeza a un lado.


Mira la diferencia, de esta linea

Código (java) [Seleccionar]
final HashMap<String, HashMap<String, String>> map1 = new HashMap<String, HashMap<String, String>>();

A esta linea

Código (java) [Seleccionar]
final HashMap<String, HashMap<String, String>> map2 = new HashMap<>();

Ambas declaraciones contienen maps anidados, la segunda linea es mas fácil de leer, porque no contiene información redundante.


El uso de tipos parametrizados

Código (java) [Seleccionar]
public static void mostrarNombres(List lista) {
      for(int f=0; f<lista.size(); f++) {
           final String nombre = (String) lista.get(f);//java.lang.ClassCastException
           System.out.println(nombre);
       }

   }

 public static void main(String ...blabla) {
      List lista = new ArrayList();
      lista.add(new StringBuilder("Ana Kéldysh"));

       mostrarNombres(lista);
 }


Si recuerdas cuando hablamos de especificar el tipo de dato, aka tipo parametrizado en la lista, para saber de que tipo sera nuestra lista, que es lo correcto de hacer

En el ejemplo de arriba la linea 3 arroja java.lang.ClassCastException , porque en la linea 12, le añadimos un StringBuilder, esperando en realidad un String en la 3, dando la excepción, todo porque la lista no contiene nada, no especifica nada.

Los Generics fixean eso, permitiendo que escribas el tipo parametrizado, de que deseas una Lista de String, logrando que el compilador tenga información para prevenir que tu causes ese problema en primer lugar;


Código (java) [Seleccionar]
List<String> names = new ArrayList<String>();
names.add(new StringBuilder("Ana Kéldysh")); // no compilara  


Tendríamos un error del compilador(tiempo de compilación) lo cual es bueno, porque te ayudara a detectar de inmediato el error, a diferencia de descubrir ese error luego.

#546
Muchaaaachoo me entero, o sea este no le agrada el feminismo que abusan muchas mujeres.
#547
Tú me recuerdas tanto a las primillas mias  :xD
#548
Cita de: Beginner Web en 25 Abril 2019, 18:51 PM
Claro, ahí si funcionaría  :laugh:
¿Así, verdad?
¿Por qué no funciona si coloco en el
Código (java) [Seleccionar]
ArrayList<int> en lugar de ArrayList<Integer>  ???

Código (java) [Seleccionar]
ArrayList<Integer> arreglo = new ArrayList<>();
       arreglo.add(1);
       arreglo.add(2);
       arreglo.add(3);

       for (int i : arreglo) {
           if (Objects.nonNull(i)) {
               System.out.println(i);
           }
       }


Y con lo del arreglo comun, ya veo que no funcionará  :xD

Lee un poco más detallado el mensaje de WHK , mejor dicho el gran WHK, porque las listas genéricas funcionan únicamente con Objetos,. El objeto que representa al primitivo int, es Interger, o sea, la clase envoltoria(wrapper) es Integer.

Ese for que usas en la línea 6 carece de índice, se llama for extendido

Usa el for normal que si tiene índice.

Código (java) [Seleccionar]
for(int f=0; f<arreglo.size(); f++)

Edito, ambos for sirven, pero cada uno para una cosa, todo depende lo que quieras hacer,

Con el arreglo normal puedes usar el for normal, Stream, IntStream, Arrays.stream

Recuerda también que las clases van en mayúsculas, o sea, Double, Integer, Boolean, Long etc... Nomenclatura camel case

#549
Cita de: Machacador en 24 Abril 2019, 18:51 PM
Y mangos verdes... para que te los comas con sal o con adobo...  ;-) :laugh: ;-)

:rolleyes: :o :rolleyes:

Saludos.

Tal cual dog, En el 2016 fue víctima de scan también, solo perdí como 60 mangos, en hash ocean, Shell root como se reía jajajajajajaja, pero está bien que me haya pasado, para más nunca creer en esas estúpidas Webs, y se robaron 1.4 millones de $
#550
Cita de: Beginner Web en 25 Abril 2019, 15:42 PM
Si, solo quiero leer las posiciones donde ingrese valores, las otras no  ;-)

Código (java) [Seleccionar]
for(int f=0; f<4; f++)

No tengas miedo a probar Chavalina  :D, desde 0 para incluir ese Index, y hasta menos 4 para no incluir la posición 5