我对 Java 重载方法有疑问。
假设我有一个重载方法 foo:
public static String foo(String x) {
return "foo-String: " + x;
}
public static String foo(Object x) {
return "foo-Object: " + x;
}
我怎样才能实现像
这样的功能public static String useString() {
return(foo("useString"));
}
public static String useObject() {
return(foo("useObject"));
}
哪一个使用重载的字符串方法,一个使用重载的对象方法?
foo-Method 的调用应该使用字符串输入。 (这意味着我不想和像
这样的 Actor 一起工作return(foo((Object)"useObject"));
也许你能帮我解决这个问题
编辑:
以上只是一个练习的例子。我试图更好地理解 Overloads 和 Dispatch 并且正在寻找调用(和选择)overload 方法的替代解决方案。
最佳答案
如果我们暂时搁置这背后的动机并尝试回答直接的问题,您可以创建对象引用而不是使用显式强制转换。
public static String useObject() {
Object obj = "useObject";
return foo(obj);
}
虽然最终结果是相同的,但您可以避免使用这种方法进行显式强制转换。
关于java - 如何在不使用强制转换的情况下选择要调用的方法的重载版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46976973/