【发布时间】:2020-11-21 12:13:45
【问题描述】:
以下代码:
import java.util.*;
public class HelloWorld{
public static void main(String []args){
Scanner s = new Scanner(System.in);
long N = s.nextLong();
long[] arr = new long[N];
System.out.println(N);
}
}
收到此错误:
HelloWorld.java:12: error: incompatible types: possible lossy conversion from long to int long[] arr = new long[N];
据我了解,代码中不涉及 int,谁能解释为什么会发生这种情况以及如何解决这个问题?
【问题讨论】:
-
数组大小是使用
ints 定义的,因此在... = new long[N]中,编译器会尝试将long N的值转换为int值。由于此转换可能会降低精度,因此不会执行自动转换,而是会生成编译时错误。将N定义为int并改为阅读int,你应该很高兴。 --- 顺便说一句:java 中的变量名应始终以小写字母开头 (long N = ...;->long n = ...;)
标签: java int long-integer