【问题标题】:Types conversion from int to char Int to char [duplicate]从 int 到 char 的类型转换 Int 到 char [重复]
【发布时间】:2020-04-09 12:21:22
【问题描述】:

假设

FileInputStream in=new FileInputStream ("file.txt");
char c=in.read();

给我一​​个错误:

java:不兼容的类型:从 int 到 char 的可能有损转换

, 但是

char b=87;

没有给我任何错误,而是给了我 Unicode 字符

  • 为什么 char c 变量会报错,因为 in.read() 返回的 int 值可以是 Unicode 字符,但 char b 变量不能?

【问题讨论】:

标签: java char type-conversion int fileinputstream


【解决方案1】:

因为 int 也可以是 2147000000 并且不能转换为 char。当您指定 87 时,编译器知道它在预期的 char 边界内,但是当您从其他地方接收它时,无法确保数据安全。

【讨论】:

    【解决方案2】:

    int 类型通常是 32 位(取决于系统),而 char 通常是 8 位。因此,您将 32 位转换为 8 位并可能丢失数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-04
      • 2021-11-19
      • 2012-03-30
      • 1970-01-01
      • 2023-03-08
      • 2018-08-22
      • 2012-10-19
      • 2012-10-20
      相关资源
      最近更新 更多