java - 从 int 到 char 的类型转换 Int 到 char
问题描述
假设
FileInputStream in=new FileInputStream ("file.txt");
char c=in.read();
给我一个错误:
java:不兼容的类型:从 int 到 char 的可能有损转换
, 但
char b=87;
没有给我任何错误,而是给了我 Unicode 字符
- 为什么 char c 变量会给出错误,因为
in.read()
返回一个可以是 Unicode 字符的 int 值,但 char b 变量不能?
解决方案
因为 int 也可以是 2147000000 并且不能转换为 char。当您指定 87 时,编译器知道它属于预期的 char 边界,但是当您从其他地方接收它时,无法确保数据安全。
推荐阅读
- sql - 如何将三列的部分连接到一个新列
- ios - 如何使滚动视图在拖动时停止移动并为已经触摸的手指立即恢复移动?
- nginx - 使用 NGINX 在子目录中托管 Gatsby
- native - PWA 可以称为移动开发 App 吗?
- java - JAXB 不会生成适当的 getter 和 setter 方法。只有一个内容列表
> - php - 设置 HTML 表单时无法获取 $_POST 变量值
- javascript - 使用 Jquery $.post 发送 Json 并返回结果
- xamarin - 在 xamarin 表单中使用 Rg.Plugins.Popup 时出现异常
- powershell - 将逗号添加到文件中的每一行
- swift - 如何在 Instagram 的分享流程中打开图片?