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 - Usuario Invitado

#421
Suele pasar  ;D. Si solucionaste tu problema, no olvides marcar el tema como solucionado:

Saludos.
#422
El valor pasado a los métodos trigonométricos de Math reciben un valor expresado en radianes. En tu calculadora, especifica que el ángulo está en Radianes.

En la calculadora de Windows:


Información de Oracle:

#423
Será un placer ayuda en lo que pueda. Soy Java evangelist xDDD
#424
EOFException indica que se ha llegado al final de un archivo y ya no hay nada más que leer. Por lo que si tu no pones una condición que se lea mientras haya objetos en el archivo, obviamente se va a leer hasta que se llegue al final del archivo, y como no hay ya objetos, no se podrá leer por lo que lanzará un EOFException.


Deberías leer tu fichero así:

Código (java) [Seleccionar]
private List<Product> readProducts() {
List<Product> products = null;
Logger logger = Logger.getLogger(Principal.class.getName());
try (ObjectInputStream reader = new ObjectInputStream(
new FileInputStream("./estanteria.obj"))) {
                products = new ArrayList<>();
Product product = null;
while( (product = (Product) reader.readObject() ) != null ) {
Product product = (Product) reader.readObject();
products.add(product);
}
} catch(IOException ioex) {
logger.warn(ioex.getMessage());
}
       return products;
}


Como puedes ver no es que sean "erorres raros". Java tiene un amplio número de Excepciones para que el programador pueda ver el fallo con precisión. Tan solo basta analizar el rastreo de pila y darás con el problema.

Otra cosa, ¿estás usando Java 6? Lo digo porque usas Generics como en Java 6:

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

En Java 7+, esto se hace:

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

Si usas Java 6, te recomiendo que empieces a usar Java 8.

Saludos.
#425
¿Por qué no empezaste por allí y esperaste una respuesta para ir al grano? xD

Gradle es como maven, y como todo gestor de dependencias puede actulizarse.

Aquí tienes una guía: Upgrade Gradle

Salu2.
#426
Asignale un id a tu tabla y realiza el css deseado. Por ejemplo:

<table class="table" id="table-users">
    <thead>
        <tr>
            <th>ID</th>
            <th>Nombres</th>
            <th>Apellidos</th>
            <th>F. Nacimiento</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>Juana</td>
            <td>Urresti Echevarría</td>
        </tr>
    </tbody>
</table>
.

Y desde CSS aplicas el estilo deseado. Por ejemplo:

Código (css) [Seleccionar]
#table-users > tbody tr:hover {
    background-color: #f5f5f5;
}
#427
AndroidStudio está basado en IntelliJ IDEA, el mejor IDE para desarrollo con Java. Solamente al estar basado en este IDE, te asegura muchas funcionalidades, un excelente autocompletado, etc.

AndroidStudio es el IDE definitivo en mi opinión para desarrollo para Androdid, e IntelliJ IDEA el mejor IDE para Java.

Sobre lo que comentas, no tengo idea si será cierto, pero imagino que no. Todo IDE te ofrece backward compatibility, es decir, compatibilidad hacia atrás para poder abrir proyectos hechos en versiones antiguas del IDE.
#428
Java / Re: Meter un Set en un Map
4 Marzo 2015, 20:15 PM
Veo un error aquí:

Código (java) [Seleccionar]
if(!!Aprovincias.containsValue(provincia)){
   res = false;

   System.out.println("La Provincia no existe, creela antes de eliminar poblacion");

}


Analiza lo siguiente:

Código (java) [Seleccionar]
!Aprovincias.containsValue(provincia)

Si "Madrid" ya está en el Map esto devuelve false. Pero al negar esa condición con nuevamente como estás haciendo:

Código (java) [Seleccionar]
!!Aprovincias.containsValue(provincia)

Ese false se vuelve true y por eso te imprime el mensaje "La provincia no existe".




1) ¿Cuándo añades la provincia solamente:

Código (java) [Seleccionar]
public boolean addProvincia(String provincia) {

34. boolean res = false;

35. if(Aprovincias.containsKey(provincia)){

36. System.out.println("Ya existe la provincia");

37. }else{

38. Aprovincias.put(provincia, null);

39. res = true;

40. }

41. return res;

42. }



¿Devuelve true? Has tests en lugar de adivinar.

Código (java) [Seleccionar]
boolean response = provincias.addProvincia("Madrid");
System.out.println(response);


Respecto a tu pregunta, la respuesta es NO. Cuando una clase implementa una interface, ésta clase automáticamente se convierte en el mismo tipo de la interfaz. Si tu haces:

Código (java) [Seleccionar]
Población instanceof IPoblacion

Devolverá true, ya que Población al implementar IPoblacion, automáticamente se convierte en tipo de ésta interface.

Es por eso que es posible hacer:

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

List es una interface y ArrayList es una clase que implementa a List.




Recapitulando:

  • Haz el test anteriormente dicho.

    ¿Has probado mi clase? No tiene ningún error. Trata de compararlas e identificar errores.

    En tu próxima respuesta:

  • Pega el rastreo de pila (El texto rojo que indica el NullPointerException).


    Salu2.
#429
¿Quieres decir que se vaya leyendo el .ods y se vayan actualizando la columna "anyos" de tus tablas de acuerdo al ID?

Ésto debes hacerlo con un lenguaje de programación. No creo que te tome muchas líneas.

La lógica es la sencilla:

1) Cargar en memoria la hoja de cálculo.
2) Leerlo fila por fila y obtener el Id y los años.
3) Hacer una consulta a la BBDD para actualizar el valor "anyos" de las tablas por los años extaídos de la hoja de cálculos.
#430
Java / Re: Meter un Set en un Map
3 Marzo 2015, 18:58 PM
Cuando te ocurra una excepción, ponle mucho detalle al rastreo de pila que te muestra. Allí hay mucha información acerca del problema, por eso te lo muestra.

Un NullPointerException es una excepción que ocurre cuando se trata de acceder a un valor null. El error que deduzco es que tu el método getPoblacion() no está devolviendo el set.

Los errores pueden ser 2:

1) Que no se haya agregado la provincia "Madrid".
2) Que por alguna razón no esté detectando a "Madrid" cuando se itera el mapa.

Te he hecho algo parecido para que lo tomes como referencia, por que no sé el contenido de "AlmacenPoblaciones".

Population (Población):

Código (java) [Seleccionar]
package net.elhacker.demo.model.entities;

public interface Population {

String getProvinceName();
   void setProvinceName(String provinceName);
   int getSomething();
   void setSomething(int value);
   String getStateName();
   void setStateName(String stateName);
   
}


PopulationImp (PoblacionImp):

Código (java) [Seleccionar]
package net.elhacker.demo.model.entities;

public class PopulationImp implements Population {

private String provinceName;
private int something;
private String stateName;

public PopulationImp() {}

public PopulationImp(String provinceName, int something, String stateName) {
super();
this.provinceName = provinceName;
this.something = something;
this.stateName = stateName;
}

@Override
public String getProvinceName() {
return provinceName;
}

@Override
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}

@Override
public int getSomething() {
return something;
}

@Override
public void setSomething(int something) {
this.something = something;
}

@Override
public String getStateName() {
return stateName;
}

@Override
public void setStateName(String stateName) {
this.stateName = stateName;
}


}


PopulationService (Servicio de población). Esto vendría a ser tu "AlmacenPoblaciones":

Código (java) [Seleccionar]
package net.elhacker.demo.model.services;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import net.elhacker.demo.model.entities.Population;

public class PopulationService {

private static Map<String, Set<Population>> provincesAndPopulations;

public PopulationService() {
provincesAndPopulations = new HashMap<>();
}

public void addProvince(String provinceName) {
if(provincesAndPopulations.containsKey(provinceName)) return;
provincesAndPopulations.put(provinceName, null);
}

public Object[] addPopulation(String provinceName, Population population) {
Object[] response = new Object[2];
if(!provincesAndPopulations.containsKey(provinceName)) {
response[0] = "La provincia no existe, primero créela";
response[1] = false;
} else {
Set<Population> provincePopulation = this.getPopulationByProvinceName(provinceName);
provincePopulation.add(population);
response[0] = "Provincia añadida correctamente";
response[1] = true;
}
return response;
}

public boolean addProvinceAndPopulation(String provinceName, Population population) {
boolean success = false;
if(!provincesAndPopulations.containsKey(provinceName)) {
Set<Population> provincePopulation = new HashSet<>();
provincePopulation.add(population);
provincesAndPopulations.put(provinceName, provincePopulation);
success = true;
}
return success;
}

private Set<Population> getPopulationByProvinceName(String provinceName) {
Set<Population> population = null;
for(Map.Entry<String, Set<Population>> entry : provincesAndPopulations.entrySet()) {
if(entry.getKey().equals(provinceName))
population = entry.getValue();
}
return population;
}

public void showAll() {
for(Map.Entry<String, Set<Population>> entry : provincesAndPopulations.entrySet()) {
System.out.println("Poblaciones del estado "+entry.getKey()+":\n");
for(Population population : entry.getValue()) {
System.out.println(population.getProvinceName());
System.out.println(population.getSomething());
System.out.println(population.getStateName());
System.out.println();
}
System.out.println();
}
}


}


Test (main):

Código (java) [Seleccionar]
package net.elhacker.demo;

import net.elhacker.demo.model.entities.Population;
import net.elhacker.demo.model.entities.PopulationImp;
import net.elhacker.demo.model.services.PopulationService;

public class Test {

public static void main(String[] args) {
PopulationService populationService = new PopulationService();
Population population = new PopulationImp("Getafe", 0, "Madrid");
populationService.addProvinceAndPopulation("Madrid", population);
population = new PopulationImp("Leganes", 345, "Madrid");
Object[] response = populationService.addPopulation("Madrid", population);
System.out.println(response[0]);

System.out.println("\n*** Mostrando todas las provincias y sus poblaciones ***\n");
populationService.showAll();

}

}


Resultado de la ejecución:

CitarProvincia añadida correctamente

*** Mostrando todas las provincias y sus poblaciones ***

Poblaciones del estado Madrid:

Getafe
0
Madrid

Leganes
345
Madrid

PD: NO uses doble negación!.