为什么Java要求char变量使用单引号?

Bud*_*ast 3 java syntax

为什么Java要求char变量用单引号而不是double来包含其中的任何内容?一个例子:

char s = 's'; //This will not break
Run Code Online (Sandbox Code Playgroud)

VS:

char s = "s"; //This will break
Run Code Online (Sandbox Code Playgroud)

我理解双引号主要用于字符串,但是有一个特定的原因可以解释为什么字符只能使用单引号并在输入双引号时中断?

我试图做一些研究,但唯一相关的是另一个SO 问题,它指的是单引号和双引号之间的区别,而不是char的语法发展背后的推理.

Doo*_*nob 21

因为char并且String是两种不同的类型,以及Java应该如何知道您是否需要长度为1的字符或字符串?

例如,给定方法:

public void foo(String s) { }
public void foo(char c) { }
Run Code Online (Sandbox Code Playgroud)

和电话

foo("a");
Run Code Online (Sandbox Code Playgroud)

如果字符可以用双引号制作,那么Java如何知道调用哪种方法?

  • 是的,你无法得到比这更准确的答案. (4认同)
  • @BuddhistBeast我觉得这个就够了:) (2认同)