public class Main {
static void over_Var(float a, Character... ab) {
System.out.println("Method1");
}
static void over_Var(Character... ab) {
System.out.println("Method2");
}
public static void main(String[] args) {
System.out.println("Hello World");
over_Var(1, 'm');
over_Var('k', 'm');
}
}
Run Code Online (Sandbox Code Playgroud)
我收到这样的错误:
Main.java:19: error: reference to over_Var is ambiguous
over_Var('k', 'm');
^
both method over_Var(float, Character...) in Main and method over_Var(Character...) in Main
match 1 error
Run Code Online (Sandbox Code Playgroud)
如果我使用char而不是 ,代码工作正常Character,或者删除该行over_Var('k', 'm');
为什么我会收到这样的错误?
我有几个问题,如果有人回答会很有帮助。
toString() 方法在以下代码中返回什么?
/**
* This object (which is already a string!) is itself returned.
*
* @return the string itself.
*/
public String toString() {
return this;
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,上面的方法返回this这意味着它被调用的对象的引用被返回,然后如果我们打印一个 String 对象,自动调用 toString() 方法并将引用返回给 println() 方法,但我们将输出作为值(芒果)而不是引用(假设内存地址是 dtt22723836@dtf)。
如果 返回此(引用),则输出应为以下内容
String a="Mango";
System.out.println(a);
/* Actual output : Mango
My assumption :dtt22723836@dtf (as the reference is returned from toString()
to println()
*/
Run Code Online (Sandbox Code Playgroud)
如果我错了纠正我。谢谢你。