我在Java中创建了一个jtable
,用于从数据库表中获取其内容。由于数据库表的主键已设置为int
数据类型(SQL Server 2008),因此行数可能超过Java中bigint
数据类型的容量。
我想要做的是创建一个2D数组,该数组将保存n
个n
数据类型为long
的数据行。这个数据数组将传递给jtable的模型。我尝试声明数组对象而不提供行号并仅提供列号,但它给出了语法错误。可能是我在申报方法上犯了一个错误。如果有这种类型声明的任何方法,请告诉我语法或如果没有那么请告诉我解决它的解决方案。该数组保存了Object类型的数据(即它是Object[]
数组)。
答案 0 :(得分:2)
根据阵列访问表达式的Java Language Specification部分:
索引表达式经历一元数字提升(§5.6.1)。提升类型必须是
int
,或发生编译时错误。
Another answer on Stackoverflow确认无法拥有比int
更多的广告位。
答案 1 :(得分:1)
您无法将数组设置为大于Integer.MAX_VALUE
的大小,java specs具有以下内容:
数组必须用int值索引; short,byte或char值也可以用作索引值,因为它们受到一元数字提升(§5.6.1)并成为int值。
尝试访问具有长索引值的数组组件会导致编译时错误。
因此,您无法创建大小大于整数最大值的数组。我不知道的原因,但我的猜测是它与优化有关。所以你似乎必须使用ArrayList
。