Próbuję od paru godzin zrozumieć co jest złego w poniższym kodzie: (kod został wycięty z większego projektu, stąd takie "ekonomiczne" nazwy klas)
public class A
{
public static void main(String[] args)
{
B b=new B();
b.setDataKonc("01.01.2010");
b.setDataPocz("01.01.2010");
System.out.println(b.getDataKonc()); //01.01.2000
System.out.println(b.getDataPocz()); //null, wtf?
b=new B();
b.setDataPocz("01.01.2010");
System.out.println(b.getDataPocz()); //01.01.2000
}
}
import java.text.*;
import java.util.*;
public class B
{
private Date dataPocz=null;
private Date dataKonc=null;
private SimpleDateFormat df=null;
private ParsePosition pos=null;
//------------------------
public B()
{
df=new SimpleDateFormat("dd.MM.yyyy");
pos=new ParsePosition(0);
}
//------------------------
public void setDataPocz(String dataPocz)
{
try
{
this.dataPocz=df.parse(dataPocz,pos);
}
catch (Exception e)
{
}
}
//------------------------
public String getDataPocz()
{
if(dataPocz==null)
{
return "null";
}
else
{
return df.format(dataPocz);
}
}
//------------------------
public void setDataKonc(String dataKonc)
{
try
{
this.dataKonc=df.parse(dataKonc,pos);
}
catch (Exception e)
{
}
}
//------------------------
public String getDataKonc()
{
if(dataKonc==null)
{
return "null";
}
else
{
return df.format(dataKonc);
}
}
}