当前位置: 首页 > 知识库问答 >
问题:

要打印对象的内容?

寿浩言
2023-03-14

我应该在我的代码中执行哪些更改,以便它可以打印整个家族都尝试过的字符串,我只得到null。这只是一个非常简单的代码soo plss帮助。

    import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

/**
 * Created by Alpit on 26-05-2017.
 */
public class Fam {
    String father;
    String mother;
    String sister;
    String brother;
String r;

    public Fam(String father, String sister, String brother, String mother) {
        this.father = father;
        this.sister = sister;
        this.brother = brother;
        this.mother = mother;
    }

    public String getFather() {
        return father;
    }

    public void setFather(String father) {
        this.father = father;
    }


}
class add {
    public static void main(String args[]) throws IOException {
        BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Object> arrayList = new ArrayList<>();
        for (int i = 0; i < 2; i++) {
            String f = obj.readLine();
            String s = obj.readLine();
            String b = obj.readLine();
            String m = obj.readLine();
            Fam fam = new Fam(f, s, b, m);
            arrayList.add(fam);
        }
        for (Object x : arrayList) {

            System.out.println(String.valueOf(x));

        }
    }
}

我只得到了对象的地址,这个问题可以被认为是这个问题的重复,但我无法理解这里提供的解决方案。

这是我再次尝试的

    import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

/**
 * Created by Alpit on 26-05-2017.
 */
public class Fam {
    String father;
    String mother;
    String sister;
    String brother;
String r;

    public Fam(String father, String sister, String brother, String mother) {
        this.father = father;
        this.sister = sister;
        this.brother = brother;
        this.mother = mother;
    }

    public String getFather() {
        return father;
    }

    public void setFather(String father) {
        this.father = father;
    }

    public String toString()
    {
        return r;
    }


}
class add {
    public static void main(String args[]) throws IOException {
        BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Object> arrayList = new ArrayList<>();
        for (int i = 0; i < 2; i++) {
            String f = obj.readLine();
            String s = obj.readLine();
            String b = obj.readLine();
            String m = obj.readLine();
            Fam fam = new Fam(f, s, b, m);
            arrayList.add(fam);
        }
        for (Object x : arrayList) {

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

        }
    }
}

这将返回null。

共有3个答案

宗政鸿志
2023-03-14

实现您自己的toString()方法。这样做:

class Fam {
    String father;
    String mother;
    String sister;
    String brother;
    String r;

    public Fam(String father, String sister, String brother, String mother) {
        this.father = father;
        this.sister = sister;
        this.brother = brother;
        this.mother = mother;
    }

    public String getFather() {
        return father;
    }

    public void setFather(String father) {
        this.father = father;
    }

    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append(this.father);
        builder.append(" ");
        builder.append(this.sister);
        builder.append(" ");
        builder.append(this.brother);
        builder.append(" ");
        builder.append(this.mother);

        return builder.toString();
    }


} 

class add {
    public static void main(String args[]) throws IOException {
        Fam family = new Fam("father", "sister", "brother", "mother");

        System.out.println(family.toString());
    }
}

我已经在这里实现了toString()。我使用了StringBuilder来演示如何创建自己的方法,在“父亲、姐妹、兄弟、母亲”之间插入空格。

跑步你得到:

father sister brother mother
夹谷野
2023-03-14

什么弦。valueOf(object)的作用是调用类对象的toString()方法(在您的例子中是Fam)。

 public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();

}

因此,您需要在Fam类中重写toString()方法,如下所示:

public class Fam {
String father;
String mother;
String sister;
String brother;
String r;
public Fam(String father, String sister, String brother, String mother) {
    this.father = father;
    this.sister = sister;
    this.brother = brother;
    this.mother = mother;
}

.
.
.

@Override
public String toString() {
    return this.father +" "+this.mother +" "+ this.sister +" "+ this.brother;
}

此外,您需要在main方法中进行此更改。

        ArrayList<Fam> arrayList = new ArrayList<Fam>();

这样你就可以把你的物品打印出来。(请注意:您可以在toString()方法中更改返回格式。)

贺元明
2023-03-14

您可以从类Fam中的对象重写toString()。

 类似资料:
  • 问题内容: 通常,如果我们仅使用它,它将显示为。如何在JavaScript中打印对象的所有内容参数? 问题答案: 如果您使用的是Firefox,则只需进行简单的调试即可。

  • 使用 Photoshop,您可以打印任何兼容的 3D 模型,而无需担心 3D 打印机的限制。在准备打印时,Photoshop 会自动使 3D 模型防水。Photoshop 还会生成必要的支撑结构(支架和底座),以确保您的 3D 打印能够成功完成。 准备打印 3D 对象 选择“窗口”>“工作区”>“3D”以切换到 3D 工作区。 在 Photoshop 中打开 3D 模型。如果需要,请在打开 3D

  • 问题内容: 我是Java的新手。我说,我有一个类 人 。我要列印 上面的代码给出如下输出: 这有什么意义? 该对象是否具有某种唯一标识? 我可以自定义吗?我的意思是编写自己的函数,该函数在打印时会输出? 如果是这样,我该怎么做? 问题答案: 如果要打印任何对象的有意义的内容,则必须实现自己的方法,该方法将覆盖parent()类的方法。默认情况下,所有类(无论您创建什么)都扩展类。 样例代码: 输出

  • 问题内容: 我有一个使用JSON解析过的javascript对象,现在我想打印该对象,以便对其进行调试(该函数出了点问题)。当我执行以下操作时… 我列出了多个[object Object]。我想知道如何打印此内容以查看内容? 问题答案: 大多数调试器控制台都支持直接显示对象。只需使用 根据您的调试器,这很可能会将对象在控制台中显示为折叠的树。您可以打开树并检查对象。

  • 我已经创建了几个对象,我想在ArrayList中只打印对象的一个参数: 我要打印:

  • 请帮助将此类型打印为格式?