首页 > 解决方案 > 使用隐式参数字符串转换创建方法

问题描述

我想在 Java 中实现一个方法,它可以自动将接收到的对象转换为其字符串表示,而无需toStringprint/println那样显式调用。

有可能吗,如果有,怎么做?

MyObject obj = new MyObject();
myMethod(obj); // Doesn't work
System.out.print(obj); // Works (why?)

static void myMethod(String str) {
    // Do things
}

标签: java

解决方案


如果您更深入地研究该System.out.print方法,您会看到,该方法被重载以还允许Objectas 方法参数。你的方法只允许传递一个字符串,因为对象不是一个字符串,你不能传递它。

你也必须重载你的方法:

static void myMethod(Object o) {
    // Do things
}

推荐阅读