第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在不獲取“SomeType @ 2f92e0f4”的情況下打印我的Java對(duì)象?

如何在不獲取“SomeType @ 2f92e0f4”的情況下打印我的Java對(duì)象?

largeQ 2019-05-21 13:49:12
如何在不獲取“SomeType @ 2f92e0f4”的情況下打印我的Java對(duì)象?我有一個(gè)類定義如下:public class Person {  private String name;  // constructor and getter/setter omitted}我試圖打印我的班級(jí)實(shí)例:System.out.println(myPerson);但我得到了以下輸出:com.foo.Person@2f92e0f4。當(dāng)我嘗試打印一個(gè)Person對(duì)象數(shù)組時(shí)發(fā)生了類似的事情:Person[] people = //...System.out.println(people); 我得到了輸出: [Lcom.foo.Person;@28a418fc這個(gè)輸出是什么意思?如何更改此輸出以使其包含我的人名?我如何打印我的對(duì)象集合?
查看完整描述

6 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

我認(rèn)為apache提供了一個(gè)更好的util類,它提供了獲取字符串的函數(shù)

ReflectionToStringBuilder.toString(object)


查看完整回答
反對(duì) 回復(fù) 2019-05-21
?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

在Eclipse中,轉(zhuǎn)到您的班級(jí),右鍵單擊 - > source-> Generate toString();

它將覆蓋該toString()方法并將打印該類的對(duì)象。


查看完整回答
反對(duì) 回復(fù) 2019-05-21
?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

默認(rèn)情況下,Java中的每個(gè)Object都有toString()輸出ObjectType @HashCode的方法。

如果您想要更有意義的信息,那么您需要覆蓋toString()類中的方法。

public class Person {
  private String name;

  // constructor and getter/setter omitted

  // overridding toString() to print name
  public String toString(){
     return name;  
  }}

現(xiàn)在,當(dāng)您使用System.out.prtinln(personObj);它打印person對(duì)象時(shí),將打印該人的名稱而不是classname和hashcode。

在第二種情況下,當(dāng)您嘗試打印數(shù)組時(shí),它會(huì)打印[Lcom.foo.Person;@28a418fcArray類型及其哈希碼。


如果要打印人名,有很多方法。

您可以編寫自己的函數(shù)來迭代每個(gè)人并進(jìn)行打印

void printPersonArray(Person[] persons){
    for(Person person: persons){
        System.out.println(person);
    }}

您可以使用Arrays.toString()打印它。這對(duì)我來說似乎最簡單。

 System.out.println(Arrays.toString(persons));
 System.out.println(Arrays.deepToString(persons));  // for nested arrays

你可以用java 8方式打印它(使用流和方法引用)。

 Arrays.stream(persons).forEach(System.out::println);

可能還有其他方式。希望這可以幫助。:)


查看完整回答
反對(duì) 回復(fù) 2019-05-21
?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊

在intellij中,您可以通過按alt + inset自動(dòng)生成toString方法,然后選擇toString()這里是測試類的輸出:

public class test  {int a;char b;String c;Test2 test2;@Overridepublic String toString() {
    return "test{" +
            "a=" + a +
            ", b=" + b +
            ", c='" + c + '\'' +
            ", test2=" + test2 +
            '}';
 }}

如您所見,它通過連接類的幾個(gè)屬性生成一個(gè)String,對(duì)于它將打印其值的基元,對(duì)于引用類型,它將使用它們的類類型(在本例中為Test2的字符串方法)。


查看完整回答
反對(duì) 回復(fù) 2019-05-21
  • 6 回答
  • 0 關(guān)注
  • 1249 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)