当前位置: 首页 > 面试题库 >

在Java中通过一次调用(如JSON.stringify)打印整个结构?

孙帅
2023-03-14
问题内容

如何在Java中打印任何类实例?类似于Javascript中的JSON.stringify()。不需要JSON,任何格式的输出都可以。

public class User {
    public String name, password;
    public int age;
    public ArrayList<String> phones;
    public static void login() {
        //do something
    }
}

User X = new User;
X.name = "john connor";
X.password = "skynet";
X.age = "33";
X.phones.add("1234567");
X.phones.add("7654321");

System.out.println(printClass(X))

应该输出类似:

{ name:"john connor", password: "skynet", age: "33", phones: 
     ["1234567", "7654321"], login: void function() }

问题答案:

您可以使用Apache的commons-lang
ToStringBuilder.reflectionToString

当然,反射很慢,因此只能在测试代码中执行。为了正常使用,请使用eclipse的“源”菜单-> generate
toString()(或intellij的generate toString()),它会为您提供一个不错的字符串。



 类似资料:
  • 问题内容: 我需要通过jasperreport打印整个地图 例: 应该选择什么数据源? 包含哪些报告来源? PS:我不想直接获得像$ P {key11}这样的值 问题答案: 我会尝试这样的 在碧玉报告中,您的字段将是 注意:我如何使用Bean 和创建数据源 如果您只想实现a 并使用,则将不会对值进行排序。

  • 应该选择什么数据源? containts报告来源应该是什么? PS:我不想直接获得像$P{key11}这样的值

  • 我使用以下代码询问用户的身高(英尺和英寸),如果用户的输入不是int,则返回一条错误消息: 程序返回feet的错误消息: 但第一次返回英寸的错误消息时,它会返回两次: 此错误仅在用户第一次输入整数以外的内容时发生。我怎么才能摆脱这个?

  • 问题内容: 例如,我有两个变量,以及如何仅使用一个变量而不将类型转换为来在单独的行中打印两个整数。(如在C ++以下:) 问题答案: 在python3中: 在python2中: …或者使用python3的打印 自从我的第一个答案以来,OP就使用可变类型更改来编辑问题。更新已更新问题的答案: 如果您有一些整数,即和: Python 3: Python 2: 要么 要么

  • 问题内容: 我想读取捕获的异常的完整堆栈跟踪。 例如: 我想阅读“ … 23更多”,以了解异常的来源。 问题答案: 答案很简单,这些行已经在stacktrace中了:) 基本上,以下情况正在发生:

  • 问题内容: 在我的代码中,我使用整数乘以100作为小数(0.1为10等)。您能帮我格式化输出以显示为十进制吗? 问题答案: