首页 > 解决方案 > 从 .class (Class )调用 Object 的 toString() 方法

问题描述

我有一个名为“Test”的类,我将它传递给一个Test.class类型为Class<T> clazz.

我需要从该 clazz 变量中调用 Test 类的 toString() 方法。我们可以使用反射而不用类型转换 clazz 来测试吗?

标签: javaandroidgenericsreflection

解决方案


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

clazz.newInstance().toString();

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

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

更新: 如果要制作通用测试功能,则必须像这样实现测试功能。

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

推荐阅读