java - 从 .class (Class )调用 Object 的 toString() 方法
问题描述
我有一个名为“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);
}
推荐阅读
- sql - 为什么一个视图有一个惊人的时间曲线和极限?
- java - 为什么 Java 类可以在方法中声明和初始化该类的对象?
- wordpress - CSV 文件未在 Wordpress 上上传
- python - 在格式化 JSON 响应时,迭代 SQL 关系的最有效方法是什么?
- php - if 条件中出现意外的标识符语法错误
- java - 为什么连接 BLE 设备时 bluetoothAdapter 回调会抛出错误?
- java - Spring Boot AnnotationConfigEmbeddedWebApplicationContext 无法填充动态类中的自动装配声明字段
- sql-server - 如何检查 SQL Server 中的日期时间格式?
- android - Android TextView 文本不出现
- sql - oracle sql:插入长文本但接收 SP2-0778:脚本文件名和参数太长