|
581
|
Programación / Java / Re: Problemas servidor tomcat en NetBeans
|
en: 28 Abril 2019, 01:05 am
|
Como soluciono esto? Esta semana me estaba andando bien pero hoy no se que pasó C:\Users\Ana\Desktop\CalculadoraWeb\nbproject\build-impl.xml:1008: Warning: Could not find file C:\Users\Ana\Desktop\CalculadoraWeb\${libs.PrimeFaces_6.2.classpath} to copy. BUILD FAILED (total time: 0 seconds)
revisa el proyecto en netbeans con click derecho properties , anda a librerías, para ver si te falta alguna
|
|
|
582
|
Foros Generales / Dudas Generales / Re: Servidores
|
en: 27 Abril 2019, 23:02 pm
|
Hola, buenas, soy nuevo en la página. Hola, estoy estudiando informática en desarrollo de software, y mi profesora le da puntos a el que entre al servidor de mi colegio, esto con el fin de probar la vulnerabilidad de él. Soy muy nuevo en esto y quisiera saber si me pueden ayudar con algunos consejos u otras cosas. ¡Muchas gracias! ... en serio que profesora tan extraña, pasa las pruebas a ver, si ella permite eso. don juan del money
|
|
|
585
|
Foros Generales / Dudas Generales / Re: Quiero presentarme
|
en: 27 Abril 2019, 20:35 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
|
|
|
587
|
Programación / Java / Re: Ayuda con codigo Java
|
en: 27 Abril 2019, 16:05 pm
|
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 lista.add(1);//<-¿Este valor se puede incrementar? lista.add(cualquierCosa);
Si podrías incrementarlo como lo tienes en el código con listaInteger.set(0, listaInteger.get(0) + 1);
O, tomando lo que dice WHK, pero no exactamente así, sino 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);
Importanteen versiones anteriores a java 5, tu podías escribir tranquilamente ese tipo de lineas
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
quedandoList<Integer> lista = new ArrayList<Integer>();
Cuando la versión java 7 se libero, se logro una versión mas corta,
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 final HashMap<String, HashMap<String, String>> map1 = new HashMap<String, HashMap<String, String>>();
A esta lineafinal 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 parametrizadospublic static void mostrarNombres (List lista ) { for(int f=0; f<lista.size(); f++) { final String nombre = (String) lista. get(f );//java.lang.ClassCastException } } public static void main (String ... blabla) { 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; 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.
|
|
|
590
|
Programación / Java / Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
|
en: 25 Abril 2019, 19:09 pm
|
Claro, ahí si funcionaría ¿Así, verdad? ¿Por qué no funciona si coloco en el ArrayList<int> en lugar de ArrayList<Integer>
??? ArrayList<Integer> arreglo = new ArrayList<>(); arreglo.add(1); arreglo.add(2); arreglo.add(3); for (int i : arreglo) { if (Objects.nonNull(i)) { } }
Y con lo del arreglo comun, ya veo que no funcionará 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 extendidoUsa el for normal que si tiene índice. 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
|
|
|
|
|
|
|