我一直发现这里和谷歌上的人都有从long到int的麻烦,而不是相反。然而,我确信我不是唯一一个在从int型转向Long型之前遇到这种情况的人。

我找到的唯一其他答案是“一开始就把它设置为长”,这并没有解决这个问题。

我最初尝试了类型转换,但我得到了一个“不能从int类型转换为Long类型”

for (int i = 0; i < myArrayList.size(); ++i ) {
    content = new Content();
    content.setDescription(myArrayList.get(i));
    content.setSequence((Long) i);
    session.save(content);
}

正如你可以想象的,我有点困惑,我被困在使用int,因为一些内容是作为一个数组列表进来的,而我存储这个信息的实体需要序列号作为一个长。


当前回答

如果你已经有int类型为Integer,你可以这样做:

Integer y = 1;
long x = y.longValue();

其他回答

在Java中,你可以做:

 int myInt=4;
 Long myLong= new Long(myInt);

在你的情况下,它将是:

content.setSequence(new Long(i));

我们将使用数字引用来获得长值。

public static long toLong(Number number){
    return number.longValue();
}

它适用于所有数字类型,下面是一个测试:

public static void testToLong() throws Exception {
    assertEquals(0l, toLong(0));   // an int
    assertEquals(0l, toLong((short)0)); // a short
    assertEquals(0l, toLong(0l)); // a long
    assertEquals(0l, toLong((long) 0)); // another long
    assertEquals(0l, toLong(0.0f));  // a float
    assertEquals(0l, toLong(0.0));  // a double

}

只要只有long . valueof (long)方法,在使用long . valueof (intValue)的情况下,将隐式地从int转换为long。

更明确的做法是

Integer.valueOf(intValue).longValue()

如果你已经有int类型为Integer,你可以这样做:

Integer y = 1;
long x = y.longValue();

use

new Long(your_integer);

or

Long.valueOf(your_integer);