我正在尝试创建一个方法,它可以接受各种类型的对象,对传入的任何对象执行toString,然后打印它.有时它会是一个int,有时是一个long,有时是一个字符串,有时候是一个自定义对象,等等.唯一的断言应该是它有一个toString()方法.基本上,我想模拟python的duck-typing,而不是每次使用该方法时都必须在此API之外调用toString().
这是现有的功能:
/**
* Log a message at TEST level
* @param message: The message to log
*/
public void test(String message) {
log(Level.TEST, message);
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止试图增强它的方法:
/**
* Log a message at TEST level
* @param message: An object of any class that implements toString.
*/
public void test(Class<?> message) {
String messageString = message.toString();
log(Level.TEST, messageString);
}
Run Code Online (Sandbox Code Playgroud)
这似乎在语法上是正确的,但它没有给出我想要的东西:
Cannot resolve method 'test(int)'
Run Code Online (Sandbox Code Playgroud)
有没有一种在Java中实现此功能的合理方法?