2015-09-04 77 views
-3

我在同一个类中使用了多个构造函数,但是前几天我遇到了一个“罕见”的问题。构造函数初始化所有,我尝试使用这些型动物的构造函数中的字段=(在ArrayList中使用多个构造函数不起作用

我Ejercicio.java类

public class Ejercicios { 
    int Id_Ejercicio; 
    String Descripcion; 
    String Finalidad; 
    String Duracion; 

    //Constructor 
    public Ejercicios() { 
     super(); 
    } 

    //Constructor with 2 fields 
    public Ejercicios(int id_Ejercicio, String descripcion) { 
     super(); 
     Id_Ejercicio = id_Ejercicio; 
     Descripcion = descripcion; 
    } 

    //Constructor with 4 fields 
    public Ejercicios(int id_Ejercicio, String descripcion, String finalidad, String duracion) { 
     super(); 
     Id_Ejercicio = id_Ejercicio; 
     Descripcion = descripcion; 
     Finalidad = finalidad; 
     Duracion = duracion; 
    } 
} 

而且Lista_Ejercicios.java类

public class List_Ejercicios { 

    ArrayList<Ejercicios> lejer; 

    public List_Ejercicios() { 
     super(); 
    } 
} 

而我的主要类

public Response Principal(SQLQuery){ 
    List<Ejercicios> listaEJER = new ArrayList<Ejercicios>(); 
    dbCon = new ConexionBD(); 
    ResultSet rslt; 

    try { 
     conn = (Connection) ConexionBD.setDBConnection(); 
     rslt = dbCon.getResultSet(SQLQuery, conn); 
     while(rslt.next()){    
      listaEJER.add(new Ejercicios(rslt.getInt(1),rslt.getString(2))); 
     }  
    }catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    //finally block code 
    return Response.ok(listaEJER.toArray()).build(); 
} 

我在使用Chrome的“高级休息客户端”我没有一个想法,为什么我收到了4场,而不是像2我在构造

... 
{ 
descripcion: "Jump as high as you can" 
id_Ejercicio: 1 
finalidad: null 
duracion: null 
} 
... 

我有麻烦especified,这些构造工作两个星期前我没有任何头绪,为什么目前其运行不起作用。

回答

2

他们做了不是两周前工作。你改变了一些东西。当您在班级中声明一个字段时,该字段始终为。如果你没有在你的构造函数中初始化它,它会被自动初始化。对于类,这个默认值是null,而对于基元,它是0,false等等。但是,它的行为与在构造函数中将其初始化为该值时完全相同 - myEjercicios.Finalidad(使用命名约定)将为null,因为它是String类型的自动初始化对象。

至于解决这个问题,不应该很难写一些代码来打印null的值。如果你想要一组不同的字段,但是,你必须必须声明两个不同的类(也许一个扩展另一个)。

+0

我正在检查proyect的存储库,你有理由。它被修改添加一个新的字段,所以我遇到了这些'空'的'新闻'字段的麻烦。对不起! –

相关问题