Java:Long result = -1:无法从int转换为long

ufk*_*ufk 5 java casting

我正在使用eclipse java ee来执行java编程.

我的一个函数中有以下代码行:

Long result = -1;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

类型不匹配:无法从int转换为Long

我不太明白为什么当我向变量添加数字时它会提供此错误.

如何解决这个问题,为什么一开始就会发生这个问题?

dac*_*cwe 15

对象之间没有转换Long,int因此您需要进行转换long.添加a L使整数-1成为long(-1L):

Long result = -1L;
Run Code Online (Sandbox Code Playgroud)

然而,有从转换int一个long这样工作的:

long result = -1;
Run Code Online (Sandbox Code Playgroud)

所以你可以像这样写:

Long result = (long) -1;
Run Code Online (Sandbox Code Playgroud)

从一个原语(转换int,long等),以一个包装对象(Integer,Long等)被称为自动装箱,阅读更多这里.

  • +1,重要的是大写.`-1l`看起来像`-11` :) (5认同)