java - 简单的短加法会产生警告

标签 java eclipse lint

我发现了一些有关short算术的问题,但没有一个比较以下三种情况。我想知道为什么这两段代码没问题

(一)

            short m = 1;
            m += m;

(b)

            short m = 1;
            m += m + m;

此时

(c)

            short m = 1;
            m = m + m;

导致错误“类型不匹配:无法从int转换为short”

最佳答案

这不是警告 - 这是错误。

这里有两个事实在起作用:

  • 没有短+短运算符; “最小”加法是 int + int,结果类型为 int,并且如果需要,操作数会自动提升为 int(请参阅JLS 15.18.2)
  • 复合赋值运算符始终具有隐式强制转换(请参阅 JLS 15.26.2)

第二点是为什么前两个操作有效。您实际上已经获得了:

m = (short) (m + m);

还有

m = (short) (m + m + m);

第一点是为什么最后一个操作不起作用 - m + m 的类型是 int,并且不能分配 int 值到一个short 变量。 (你需要一个 Actor ...)

关于java - 简单的短加法会产生警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29578697/

相关文章:

php - 这如何成为有效的 php 语法

c - switch 语句中带有 unsigned long 的 lint 警告

android - 在 Eclipse 中查看变量时 gdb 进程崩溃

android - 如何忽略使用 gradle 进行 lint 检查的完整文件夹?

java - Gradle Java 和 MongoDB

java - 捕获异常后重新启动线程

eclipse - 如何在 Eclipse 中配置 GCC 以使用 C99?

java - 在 Eclipse 工作区中手动重命名项目

java - Spring应用程序启动失败

java - 我的 kafka 下载中的 SBT 文件在哪里?