繁体   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