Java:printstream输出奇怪,为什么toString不转换?
在对象上使用toString时,我没有得到预期的结果。(我继承了代码)
目标是在txt文件上打印一个人的FiscalCode
这是我的目标:
public class DatiPersonaFisica extends DatiPersona {
private String nome;
private String cognome;
private CodiceFiscale CF;
private String cell;
private Indirizzo domicilio;
}
下面是我创建和打印文件的方法:
public class LoggerPersone {
public static void Logger(DatiPersonaFisica p) throws FileNotFoundException{
FileOutputStream fs = new FileOutputStream("logPersoneFisicheInserite.txt",true);
PrintStream scrivi = new PrintStream(fs);
CodiceFiscale codfisc = p.getCF();
codfisc.toString();
scrivi.println(codfisc);
scrivi.close();
}
看起来一切正常,但结果是:
data_view.CodiceFiscale@43ee5528
这不是一个财政代码
# 1 楼答案
CodiceFiscale
类源并添加如下内容:# 2 楼答案
问题是类
如果可能的话,请考虑要么重写该方法,要么打印CODIFEFISCALE对象的不同字段。如果您不想直接修改CODIFEISCALE,请考虑扩展它,并给您的子类一个体面的{{CD3}}方法,一个返回重要信息的方法。为此,您可能需要使用“包装器”类CodiceFiscale
没有覆盖对象的public String toString()
方法,因此您看到的字符串是从对象的默认方法返回的话虽如此,我认为一般不建议以这种方式在生产代码中使用
toString()
。该方法在调试中最有用、最安全。另一种方法是创建一个静态实用程序方法,从传入的CodiceFiscale对象中提取所有需要的信息,并返回一个感兴趣的字符串