如何在int中将int转换为Long?

我一直在这里find这两个人,而Google的人却遇到了麻烦,而不是相反。 但是我确信在从intLong之前,我并不是唯一遇到这种情况的人。

我发现的唯一的其他答案是“只要把它放在首位”,这实际上没有解决问题。

有人可以帮我吗? 我最初尝试铸造,但我得到一个“ Cannot cast from int to 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,因为一些内容作为一个ArrayList进来,我存储这个信息的实体需要序列号作为一个长。

谢谢!

请注意, long阵和long阵之间有一个区别。 如果你投到long (一个原始值),那么它应该被自动装箱成Long (包装它的引用types)。

您也可以使用new来创build一个Long实例,并用int值初始化它。

使用以下内容: Long.valueOf(int);

如果你已经把整型input为Integer,你可以这样做:

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

使用

 new Long(your_integer); 

要么

 Long.valueOf(your_integer); 

我有这个小玩具,也处理非通用接口。 我很好,抛出一个ClassCastException,如果饲料错误(确定和快乐)

 public class TypeUtil { public static long castToLong(Object o) { Number n = (Number) o; return n.longValue(); } } 

在Java中你可以这样做:

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

在你的情况下,这将是:

 content.setSequence(new Long(i)); 

我们将通过使用Number引用来获得长整型值。

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

它适用于所有数字types,这里是一个testing:

 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 } 

怎么样

 int myInt = 88; 

//不会编译

 Long myLong = myInt; 

//编译,并保留int的非NULL精神。 最好的演员没有演员 。 当然,你的用例可能需要Long和可能的NULL值。 但是如果int或者其他long是你唯一的input,并且你的方法可以被修改,我会build议这种方法。

 long myLong = myInt; 

/ /编译,是最有效的方式,并明确指出,源值是,将永远不会是NULL。

 Long myLong = (long) myInt; 
  //Suppose you have int and you wan to convert it to Long int i=78; //convert to Long Long l=Long.valueOf(i) 

我遇到了很多麻烦。 我只是想:

 thisBill.IntervalCount = jPaidCountSpinner.getValue(); 

IntervalCount是一个Long,而JSpinner被设置为返回一个Long。 最终我不得不写这个函数:

  public static final Long getLong(Object obj) throws IllegalArgumentException { Long rv; if((obj.getClass() == Integer.class) || (obj.getClass() == Long.class) || (obj.getClass() == Double.class)) { rv = Long.parseLong(obj.toString()); } else if((obj.getClass() == int.class) || (obj.getClass() == long.class) || (obj.getClass() == double.class)) { rv = (Long) obj; } else if(obj.getClass() == String.class) { rv = Long.parseLong(obj.toString()); } else { throw new IllegalArgumentException("getLong: type " + obj.getClass() + " = \"" + obj.toString() + "\" unaccounted for"); } return rv; } 

这似乎是伎俩。 没有多less简单的铸造,没有上述解决scheme为我工作。 非常令人沮丧。