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

当您没有该类的源代码时,如何在Java中打印对象的值?

樊奇思
2023-03-14
问题内容

public class MyClass {
ClassABC abc = new ClassABC();
}

我只有ClassABC的.class文件。我想打印“ abc”对象的所有公共,私有,受保护和默认字段值。如何使用反射来做到这一点?


问题答案:

您可以通过获取所有字段Class#getDeclaredFields()。每个返回一个Field对象,您可以依次使用该get()方法获取值。要获取非公共字段的值,只需设置Field#setAccessible()true

因此,简而言之:

ClassABC abc = new ClassABC();
for (Field field : abc.getClass().getDeclaredFields()) {
    field.setAccessible(true);
    String name = field.getName();
    Object value = field.get(abc);
    System.out.printf("Field name: %s, Field value: %s%n", name, value);
}

也可以看看:

  • 反思教程


 类似资料:
  • 我从堆栈溢出的404 Not Found错误页面复制了下面的代码。 上面的代码编译精细,在控制台上打印404。我以为语句print(202*2);负责打印404,但我不对,因为更改此语句中的数字也打印404。 有人能帮我理解这个代码以及它是如何打印404的吗? 我发布编译输出供您参考,因为有评论说此代码无法编译。包含上述代码的文件是Test. c。 gcc测试。c-o测试 测验c: 3:1:警告:

  • 问题内容: 说我有以下JSON,存储在我的变量 jsonVariable中 。 我使用以下命令通过jq解析此JSON: 这会给我输出 詹姆斯·布朗 但是,如果我也想获得此人的身份证怎么办?现在,我知道这是一个粗糙且简单的示例- 目前正在使用的程序深度为5或6级,除了select以外还具有许多其他JQ函数。在执行各种过滤方法之后,当我已经深达5或6层时,我需要一种选择父母字段的方法。 有人可以帮忙吗

  • 下面的班级是我的主要班级。我的arraylist是“Employee”类型,并且该arraylist包含多个对象的许多元素(多态性)。所以我想知道,当用户输入一个类名时,我应该从ArrayList中打印出那个特定类的employees。例如,当用户输入“Surgeon”时,程序应该能够从ArrayList中打印出所有Surgeon雇员的。请帮忙,提前谢谢。

  • 问题内容: 我必须打印Java项目的整个源代码。最终版本应如下所示: Eclipse:File- > Print。但是使用此功能,您一次只能打印一个文件。 有没有一种方法可以使用一个命令打印(或创建pdf / rtf)整个项目(所有 .java,。xml,…文件)? 我在Windows XP SP3上使用Eclipse Galileo 编辑: 对于每个类/文件,页面应(或多或少)如下所示: C:\

  • 这是我使用jsp和jstl的代码: 如何使用Thymeleaf进行同样的操作?以下代码无效: 当我不发表评论时,会在页面上显示消息: 无法访问URL:http://localhost:8080/blog-spring-thymeleaf/auth/login 异常:org.springframework.web.servlet.NoHandlerFoundException:找不到GET /blo

  • $ gdb -q `which gdb` (gdb) l 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 18