java - 在 java 中声明 long[] 数组

标签 java arrays long-integer

谁能告诉我为什么我不能这样声明数组?

long[] powers = { 0, 0, 1, 7, 35, 155, 651, 2667, 10795, 43435,
                174251, 698027, 2794155, 11180715, 44731051, 178940587,
                715795115, 2863245995, 11453115051, 45812722347, 183251413675,
                733006703275, 2932028910251, 11728119835307, 46912487729835,
                187649967696555, 750599904340651, 3002399684471467};

编译器说 int 类型的文字超出范围。我也试过像这样把它投到很长的时间

long[] powers = { 0, 0, 1, 7, 35, 155, 651, 2667, 10795, 43435,
                174251, 698027, 2794155, 11180715, 44731051, 178940587,
                715795115, (long)2863245995, (long)11453115051, (long)45812722347, etc ...

但没有任何改变也尝试了像这样的 Long.valueOf(x) 其中 x 是编译器有问题的数字。

有什么想法吗?

提前致谢

最佳答案

普通数字在 java 中被视为 int。追加大于Integer.MAX_VALUEL来转换long

long[] powers = {..., 2863245995L, 11453115051L, ...};

根据 docs

An integer literal is of type long if it is suffixed with an ASCII letter L or l (ell); otherwise it is of type int.

The suffix L is preferred, because the letter l (ell) is often hard to distinguish from the digit 1 (one).

关于java - 在 java 中声明 long[] 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20175272/

相关文章:

java - 拥有类似 Freemarker 的 PDF 生成模板(使用 itext)

java - 我有多个布局文件,但应用程序只能识别 1 个?

python - 多维度的 Numpy 花式索引

Java 将 Long 转换为 Enum 类型问题

php - 将一个长页面拆分为多个页面

java - 根据执行历史记录,给定指令的操作数堆栈大小是否会有所不同?

java - Essbase Java API 导出数据库 MAXL

c# - 使用 Linq to SQL 简化创建数组列

java - 处理数组中的空对象

java - 为什么这个Java长溢出来了?