java - 从 .class (Class<?>) 调用 Object 的 toString() 方法

标签 java android generics reflection

我有一个名为“Test”的类,我将其作为 Test.class 传递给方法。这将是 Class<T> clazz 类型.

我需要从那个 clazz 变量调用类 Test 的 toString() 方法。我们可以使用反射而不将 clazz 类型转换为测试来做到这一点吗?

最佳答案

首先从 clazz 变量创建对象,然后调用该对象的 toString() 方法。

clazz.newInstance().toString();

如果你有一个默认的构造函数那么它也可以工作:

clazz.getConstructor().newInstance().toString();

更新: 如果你想做一般的测试功能,那么你必须像这样实现测试功能。

public void TestToString(Object obj,String expectedVal){
    assertEquals(obj.toString(),expectedVal);
  }

关于java - 从 .class (Class<?>) 调用 Object 的 toString() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55239721/

相关文章:

java - 如何使用 Selenium WebDriver 和 Java 发送 HTTP 请求代码?

java - 如何读取 j2me 手机中的控制台输出? System.out.println() 到哪里去了?

java - 在不损失质量的情况下读取/写入 JPG 图像的最快方法?

android - 为什么更改布局参数的设置位置可以解决我的 "OnClickListener not working for first item in GridView"问题?

generics - 如何使用 sin(_ : ) with a FloatingPoint value in Swift 3

c# - 通用工厂问题、运行时转换和协变/逆变问题

java - 用于创建 API 的更好的域模型

Android:屏幕关闭后保持摄像头 LED 亮起

android.util.Log 与 java.util.Logging - 用于将日志写入文件

java - 代码设计 : JSON from Socket to custom handler class