javaエンティティ類はtoString方法を書き直さないとどうなりますか?
7448 ワード
まずObjectを知りたいです。 Object類のtoString方法 クラス名(オブジェクトはクラスの一例)、atによる文字列を返します。 マーカー「@」とこのオブジェクトのハッシュコードの符号なし16進数は構成を表します。言い換えれば、この方法は文字列を返します。値は以下の通りです。
get Class().get Name()+'@'+Integer.toHexString(hashCode()
2. オブジェクトに親がいない場合は、デフォルトでObjectを継承します。
toStringメソッドを書き換えていない場合、デフォルトはObjectのtoStringメソッドの戻り値:クラス名@hahima値;
総括分析:
クラスTest 5にToStringメソッドを書き換えていない場合。デフォルトはObjectのtoStringメソッド出力フォーマットです。
Test 5でtoString方法を書き換えると、出力フォーマットは私達が定義した方法でこのオブジェクトを出力するので、このように理解できる。
書き換えtoStringは、オブジェクトに対して印刷出力をフォーマットするものです。あなたがprintの対象がこのオブジェクトを必要とする場合、プリントする時に現れるのはどんな形ですか?toStringを必要とする戻りの形に書き直します。hashcodeを書き換えるのは主に対象間の比較方法を規定するためです。hash集合に対象を預けると、対象のhashcodeを比較して、二つのオブジェクトが同じオブジェクトかどうかを区別します。
転載先:https://www.cnblogs.com/huojg-21442/p/7124823.html
get Class().get Name()+'@'+Integer.toHexString(hashCode()
2. オブジェクトに親がいない場合は、デフォルトでObjectを継承します。
toStringメソッドを書き換えていない場合、デフォルトはObjectのtoStringメソッドの戻り値:クラス名@hahima値;
package com.huojg.test;
import java.io.Serializable;
/*
* toString
* 。 。。。。
*
*
*
* **/
public class Test5{
private String name;
private String sex;
private int No;
public void Show(){
System.out.println(" !!!!");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getNo() {
return No;
}
public void setNo(int no) {
this.No = no;
}
}
テストクラスpackage com.huojg.test;
public class Test6 {
public static void main(String[] args) {
Class> demo= null;
try {
demo=Class.forName("com.huojg.test.Test5");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Test5 test5= new Test5();
test5.setName("xiaoming");
test5.setNo(001);
test5.setSex("man");
System.out.println(test5);
}
}
結果出力:com.huojg.test.Test5@304e94a4
Test 5追加toStering方法package com.huojg.test;
import java.io.Serializable;
/*
* toString
* 。 。。。。
*
*
*
* **/
public class Test5{
private String name;
private String sex;
private int No;
public void Show(){
System.out.println(" !!!!");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getNo() {
return No;
}
public void setNo(int no) {
this.No = no;
}
@Override
public String toString() {
return "Test5 [name=" + name + ", sex=" + sex + ", No=" + No + "]";
}
}
出力結果を再試験します。Test5 [name=xiaoming, sex=man, No=1]
総括分析:
クラスTest 5にToStringメソッドを書き換えていない場合。デフォルトはObjectのtoStringメソッド出力フォーマットです。
Test 5でtoString方法を書き換えると、出力フォーマットは私達が定義した方法でこのオブジェクトを出力するので、このように理解できる。
書き換えtoStringは、オブジェクトに対して印刷出力をフォーマットするものです。あなたがprintの対象がこのオブジェクトを必要とする場合、プリントする時に現れるのはどんな形ですか?toStringを必要とする戻りの形に書き直します。hashcodeを書き換えるのは主に対象間の比較方法を規定するためです。hash集合に対象を預けると、対象のhashcodeを比較して、二つのオブジェクトが同じオブジェクトかどうかを区別します。
転載先:https://www.cnblogs.com/huojg-21442/p/7124823.html