在java中增加char数据类型

VIN*_*EDI 2 java

我有以下代码

 class arr
  { 
    public static void main(String a[])
     {
       char c='A';
       c+=10;
        System.out.println(c);
        }
     } 
Run Code Online (Sandbox Code Playgroud)

从java 8编译时,它编译成功.

output ķ

但是当我编译下面的代码时:

class arr
{ 
  public static void main(String a[])
   {
    char c='A';
      c=c+10;
      System.out.println(c);
    }
 } 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

  logic.java:6: error: incompatible types: possible lossy conversion from int to char
  c=c+10;
    ^
Run Code Online (Sandbox Code Playgroud)

我不明白c=c+10,c+=10为什么我会收到这样的错误?请帮我.谢谢.

fla*_*kes 6

编译器为你提供了一些很好的语法糖 char += int

它基本上c+=10;改为c = (char)(c + 10);

但是,c=c+10;没有隐式转换,所以它不会编译.

这是oracle文档关于其工作原理的链接; 复合赋值运算符


归档时间:

查看次数:

146 次

最近记录:

9 年,2 月 前