小编MRM*_*MRM的帖子

方法调用中的歧义,参数类型为 Character 和 float

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');

为什么我会收到这样的错误?

java character char

5
推荐指数
1
解决办法
76
查看次数

有人可以解释在 String 类中重写的 toString 方法的源代码吗?

我有几个问题,如果有人回答会很有帮助。

  1. 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)
  1. 什么存储在字符串的引用变量中?价值(芒果)或参考(dtt22723836@dtf)?

如果我错了纠正我。谢谢你。

java string reference object tostring

3
推荐指数
1
解决办法
68
查看次数

标签 统计

java ×2

char ×1

character ×1

object ×1

reference ×1

string ×1

tostring ×1