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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9]
81  Programación / Java / ¿Como puedo implementar una funcion recursiva en una expresion lambda de Java? en: 8 Diciembre 2015, 01:00 am
Código
  1. //La interfaz funcional
  2.  
  3. package test;
  4.  
  5. public interface Interface {
  6.  
  7. int factorial(int x);
  8.  
  9. }
Código
  1. //La clase que utiliza la expresion lambda
  2.  
  3. package test;
  4.  
  5. public class Test {
  6.  
  7. public static void main(String... args){
  8. ((Interface) x -> x == 1 ? 1 : x*factorial(x-1)).factorial(7); //No compila (busca la funcion en la clase Test).
  9. ((Interface) x -> x == 1 ? 1 : x*this.factorial(x-1)).factorial(7); //No compila (el puntero this apunta a un objeto de la clase Test).
  10. }
  11.  
  12. }
82  Foros Generales / Sugerencias y dudas sobre el Foro / ¿Como puedo eliminar un post? en: 22 Noviembre 2015, 03:36 am
He creado varios post planteando dudas, pero ahora quiero eliminarlas y no se como. Hay un boton X que puede servir para eliminar el post o el comentario dentro del post, pero no hace nada. ¿Alguna sugerencia?
83  Programación / Java / Problema dificil de arrays en: 20 Noviembre 2015, 14:43 pm
El problema que me he propuesto a mi mismo consiste en crear un array de n dimensiones en tiempo de ejecucion.
(cuidado, no confundir con array de longitud n. Si las dimensiones son 2 es una matriz, de 3 una matriz tridimensional, etc.)
Al principio parece imposible, pero se me ocurrió que si utilizo clases genéricas puedo hacer un array de una dimension más tal y como muestra el ssiguiente código:
Código
  1. package test;
  2.  
  3. public class ClaseGenerica<T> {
  4.  
  5. ClaseGenerica<T[]> t;
  6. T u;
  7.  
  8. Test2<?> u = new Test2<Integer>();
  9. for(int i = 0; i < 10; i++){
  10. u.t = new Test2<>();
  11. u = u.t;
  12. }
  13. public static void main(String... args){
  14.  
  15. ClaseGenerica<Integer> t = new Test2<>();
  16. t.t = new ClaseGenerica<>();
  17. t.t.t = new ClaseGenerica<>();
  18. t.t.t.t = new ClaseGenerica<>();
  19. t.t.t.t.t = new ClaseGenerica<>();
  20. t.t.t.t.t.t = new ClaseGenerica<>();
  21. t.t.t.t.t.t.t = new ClaseGenerica<>();
  22. t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  23. t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  24. t.t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  25. t.t.t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  26. //En total el array tiene 10 dimensiones, no se molesten en contarlos
  27. t.t.t.t.t.t.t.t.t.t.t.u = new Integer[0][][][][][][][][][]; //No da error de compilación
  28. //Como pueden ver, no he necesitado declarar un array de N dimensiones, solo instanciarlo
  29.  
  30. }
  31.  
  32. }

Es un poco evidente que esto se puede hacer tambien con un bucle for y el operador '?' tal y como muestro a continuación, pero el problema viene después al querer instanciar ese array, que es lo que me gustaria a mi saber.

Código
  1. package test;
  2.  
  3. public class ClaseGenerica<T> {
  4.  
  5. ClaseGenerica<T[]> t;
  6. T u;
  7.  
  8. public static void main(String... args){
  9.  
  10. ClaseGenerica<?> t = new ClaseGenerica<Integer>();
  11. for(int i = 0; i < 10; i++){
  12. t.t = new ClaseGenerica<>();
  13. t = t.t;
  14. }
  15. t.u = new Integer[0][][][][][][][][][]; //Obviamente, error de compilación
  16. }
  17.  
  18. }
¿Alguna idea de como solventar este problema? No es que tenga mucha utilidad práctica, pero es por curiosidad
84  Programación / Java / Casting de arrays en: 20 Noviembre 2015, 00:09 am
Código
  1. byte b = (byte)7 //no problem
  2. byte[] array = (byte[]) new int[7] //error de compilacion
Creo que el problema habla por si solo, pero por si no ha quedado claro la pregunta es:
¿Como puedo hacer un casting de arrays?

Edito: He puesto como ejemplo tipos primitivos pero busco una forma que tambien funcione con clases
85  Programación / Java / problema con variables creadas en funciones en: 18 Noviembre 2015, 23:34 pm
Si yo creo una funcion recursiva con, por poner un ejemplo, una variable "var" de tipo int que incremente su valor una unidad cada vez que se accede a la misma funcion dentro de si misma, como podria acceder a su valor?
Código
  1. boolean darPrimerValor = true;//Esto solo es para darle a "var" el valor 0 una sola vez
  2.  
  3. void funcion(){
  4.   if(darPrimerValor == true){
  5.      int var = 0;
  6.      darPrimerValor = false;
  7.   }
  8.   if(var < 10){
  9.      var++;
  10.      funcion();
  11.   };
  12. }
Cada vez que se ejecuta la funcion dentro de si misma crearia una nueva variable "var" con el mismo nombre, no? entonces como puedo obtener el valor de la variable de la funcion que la llama?
Es lo mismo que si uno de los parametros de la funcion tuviera el mismo nombre que un atributo de la clase en la que se instancia, solo que para eso se usa el puntero "this" y para el problema que propongo no.
86  Programación / Scripting / Re: Contenido de un documento de texto hacia una variable de entorno en .bat o .cmd en: 21 Marzo 2015, 04:15 am
El unico problemaes que desconocia la existencia de setx.exe.
Como ya dije, no sabia por que no salen todos los "comandos" cuando escribo help, asi
que tampoco conocia todos los comandos, entre los cuales estaba ese.
La vida es mucho mas sencilla cuando conoces el comando apropiado.
Muchas gracias.
87  Programación / Scripting / Contenido de un documento de texto hacia una variable de entorno en .bat o .cmd en: 20 Marzo 2015, 23:59 pm
Se que para dirigir la salida de un comando hacia un archivo se utiliza el simbolo ">"
Por ejemplo:
Código
  1. echo qweruiop > "archivo de texto".txt
Pero si el archivo contenia algo anteriormente, lo elimina, de modo que si no se quiere eliminar lo que contenia anteriormente se utiliza ">>" y asi a~nade la salida del comando al final del archivo
Código
  1. echo esta es la segunda linea >> "archivo de texto".txt
Si en lugar de dirigir la salida hacia un archivo queremos hacer lo contrario, entonces utilizamos "<" o "<<", pero Como? Por ejemplo si quiero imprimir en pantalla el contenido de un archivo sin usar el comando type esto deberia funcionar pero no lo hace.
Código
  1. echo < "archivo de texto".txt
De todos modos lo que realmente me gustaria saber es como podria, como dice el titulo de la pregunta, introducir la parte que yo eliga de un documento de texto en una variable de entorno para guardar datos y poder utilizarlos de nuevo la proxima vez sin tener que introducirlos nuevamente, y como dirigir la salida de un comando hacia un lugar concreto de un archivo sin que sea necesariamente al final, es decir entre dos renglones determinados o incluso detras de un determinado caracter de uno de los renglones.

Otra cosita mas, aunque esto no es tan importante: Me he fijado que aunque escribes help para obtener todos los comandos, en realidad no estan todos (como el comando choice). Como puedo saber cuales son todos los comandos que hay realmente sin tener que mirarlo en internet? Donde estan guardados realmente?
Páginas: 1 2 3 4 5 6 7 8 [9]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines