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 - 4dr14n31t0r

#81
Código (java) [Seleccionar]
//La interfaz funcional

package test;

public interface Interface {

int factorial(int x);

}

Código (java) [Seleccionar]
//La clase que utiliza la expresion lambda

package test;

public class Test {

public static void main(String... args){
((Interface) x -> x == 1 ? 1 : x*factorial(x-1)).factorial(7); //No compila (busca la funcion en la clase Test).
((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).
}

}
#82
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
Java / Problema dificil de arrays
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 (java) [Seleccionar]
package test;

public class ClaseGenerica<T> {

ClaseGenerica<T[]> t;
T u;

Test2<?> u = new Test2<Integer>();
for(int i = 0; i < 10; i++){
u.t = new Test2<>();
u = u.t;
}
public static void main(String... args){

ClaseGenerica<Integer> t = new Test2<>();
t.t = new ClaseGenerica<>();
t.t.t = new ClaseGenerica<>();
t.t.t.t = new ClaseGenerica<>();
t.t.t.t.t = new ClaseGenerica<>();
t.t.t.t.t.t = new ClaseGenerica<>();
t.t.t.t.t.t.t = new ClaseGenerica<>();
t.t.t.t.t.t.t.t = new ClaseGenerica<>();
t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
t.t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
t.t.t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
//En total el array tiene 10 dimensiones, no se molesten en contarlos
t.t.t.t.t.t.t.t.t.t.t.u = new Integer[0][][][][][][][][][]; //No da error de compilación
//Como pueden ver, no he necesitado declarar un array de N dimensiones, solo instanciarlo

}

}


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 (java) [Seleccionar]
package test;

public class ClaseGenerica<T> {

ClaseGenerica<T[]> t;
T u;

public static void main(String... args){

ClaseGenerica<?> t = new ClaseGenerica<Integer>();
for(int i = 0; i < 10; i++){
t.t = new ClaseGenerica<>();
t = t.t;
}
t.u = new Integer[0][][][][][][][][][]; //Obviamente, error de compilación
}

}

¿Alguna idea de como solventar este problema? No es que tenga mucha utilidad práctica, pero es por curiosidad
#84
Java / Casting de arrays
20 Noviembre 2015, 00:09 AM
Código (java) [Seleccionar]
byte b = (byte)7 //no problem
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
Java / problema con variables creadas en funciones
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 (java) [Seleccionar]
boolean darPrimerValor = true;//Esto solo es para darle a "var" el valor 0 una sola vez

void funcion(){
   if(darPrimerValor == true){
      int var = 0;
      darPrimerValor = false;
   }
   if(var < 10){
      var++;
      funcion();
   };
}

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
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
Se que para dirigir la salida de un comando hacia un archivo se utiliza el simbolo ">"
Por ejemplo:
Código (dos) [Seleccionar]
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 (dos) [Seleccionar]
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 (dos) [Seleccionar]
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?