簡體   English   中英

java-返回對象值

[英]java - return object value

嗨,我有以下代碼:

public List<Person> findAll() {

    List<Person> copy = new ArrayList<Person>();
    for (Person person : personer) {
        copy.add(person);
    }

    return copy;

}

但是當我測試這個時,我只檢索以下內容而不是值:

[Person @ 15c7850,Person @ 1ded0fd,Person @ 16a9d42]

我如何獲得價值,而不是上面的。 我在插入人的地方代碼如下所示:

public boolean insert(String name, String nbr) {

    if (containsName(name)) {
                    return false;
            }
    Person person = new Person(name, nbr);
    personer.add(person);

            return true;
}

這是我的Person類:

class Person {

private String name;
private String nbr;





public Person (String name, String nbr) {
    this.name = name;
    this.nbr = nbr;
}


public String getName() {
    return name;
}


public String getNumber() {
    return nbr;
}
}

您已經收到了想要的對象。

您所看到的是這些對象的內部表示。

您必須遍歷它們並調用它們各自的方法以查看您可能想查看的信息。

如果您對這些結果不滿意,則必須重寫toString才能為您提供更多有意義的信息。

更新

看到您的編輯后,您應該在Person類中添加類似於此的toString

@Override
public String toString() {
    return "Name: " + name + ", number: " + nbr; 
}

順便說一句,您將nbr存儲為字符串,很明顯它應該是整數。 因此,我建議將其類型更改為intInteger

您將獲得一個List對象。 您可以使用Person對象來獲取所需的數據。 要訪問Person對象,請遍歷列表。

List<Person> people = findAll();
for Person p : people {
    String phoneNumber = p.phoneNumber();
    String name = p.Name();
}

如果要在打印結果時有更好的描述,請重寫Person類中的toString()方法。

Person類中放入類似的內容(不要更改方法名稱!):

public String toString() {
    return name;//change this line
}

您正在打印一個具有從Object類繼承的默認toString的Object。 這將打印出對象的類型及其在內存中的位置(即:Person @ 1ded0fd)。

如果您希望看到其他內容,可以在類中重寫toString方法:

public class Person {
  private String name;

  public Person(String name) {
    this.name = name;
  }

  public String getName() {
    return this.name;
  }    

  public String toString() {
    return this.name;
  }
}

如果您的班級如上所示,則可以執行以下操作:

Person p = new Person("John");
System.out.println(p);
 > John

您也可以直接獲取它,並從中打印出所需的任何信息,而不必覆蓋toString方法。

Person p = new Person("John");
System.out.println(p.getName());
 > John

您要從ArrayList檢索哪個值或類Person的屬性? 這種值(Person @ 15c7850等)表明,當您使用JVM時分配的Person的對象隨機ID

System.out.print(copy)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM