簡體   English   中英

從保存在ArrayList中的對象輸出字符串值

[英]Outputing string values from objects saved in an ArrayList

打印出存儲在對象中的字符串時,我遇到了一個小問題。 該對象存儲在ArrayList中。

我在程序中使用了三個類:

朋友班:

package one;

public class Friend implements InterfaceFriend {

    private String name;
    private String email;
    private String phone;

    public Friend(String name, String phone, String email) {
        // TODO Auto-generated constructor stub
    }

    @Override
    public String getPhone() {
        return phone;
    }

    @Override
    public String getEmail() {
        return email;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public void setPhone(String phone1) {
        phone1 = phone;
    }

    @Override
    public void setEmail(String email1) {
        email1 = email;
    }

    @Override
    public void setName(String name1) {
        name1 = name;
    }

}

FriendInterface:

package one;

public interface InterfaceFriend {
    String getPhone(); // Returns phone number.

    String getEmail(); // Returns email.

    String getName(); // Returns name.

    void setPhone(String phone); // Sets phone.

    void setEmail(String email); // Sets email.

    void setName(String name); // Sets name.
}

和測試類別:

package one;

import java.util.ArrayList;
import java.util.List;

public class FriendTest {

    static List<Friend> friends;
    static Friend friend;


    public static void main(String args[]) {

        friends = new ArrayList<Friend>();

        friend = new Friend("Jane Doe", "085-5555555", "jane.doe@gmail.com");
        friends.add(friend);

        friend = new Friend("John Doe", "085-1111111", "john.doe@gmail.com");
        friends.add(friend);

        friend = new Friend("Paul Weller", "085-3333333", "paul.weller@gmail.com");
        friends.add(friend);

        System.out.println("Friends added to list:");

        System.out.println(friends.toString());

    }
}

問題是當我運行System.out.println(friends.toString()); 從測試班獲得的: 朋友添加到列表:[one.Friend@38f0b51d,one.Friend@4302a01f,one.Friend@615e7597]

而是帶有我想要的值的字符串。 任何幫助表示贊賞。

您已經需要如前所述重寫Friend類中的toString()方法,但是還需要完成所使用的構造函數。

public Friend(String name, String phone, String email) {
    this.name = name;
    this.phone = phone;
    this.email = email;
}

而且,setter中的代碼是向后的。

在您的朋友類中,您需要重寫toString()

public class Friend implements InterfaceFriend {
    ...
    ...

    public String toString(){
        return name + " " + email + " " + phone; // or whatever format you want printed
    }
}

您只需覆蓋toString方法。 將此放置在Friend類中。 問題解決了..

public String toString(){
   // return  your Strings..
}

將class中的toString()重寫為適合您的輸出。 獲得該輸出的原因是因為對象中提供的默認toString()是哈希碼。

public String toString(){
   return name; //assuming you only want to display the name else edit it

}

暫無
暫無

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

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