0

我从 MSSQL 服务器中提取数据,应用程序的其余部分严重依赖番石榴。有没有办法将 int 从 SQL 转换为 Ints (guava)?我试过了

Primitives.wrap(Ints.class).cast(resultSet.getInt(3)))

并得到“java.util.concurrent.ExecutionException: java.lang.ClassCastException: Cannot cast java.lang.Integer to com.google.common.primitives.Ints”错误。

4

2 回答 2

4

Ints是一个静态实用程序类,它没有实例。它在那里提供了操作原语int的常用方法。如果你需要将它包装在一个类中,自然是java.lang.Integer.

Primitives.wrap()是一种元实用程序。它告诉您哪个实现了给定的包装器。如果您提供原语int.class,它将返回Integer.class。同样,它操作类,它不包装原始值。

如果你想包装一个int,你只需要:

int fooToWrap = 42;
Integer fooWrapped = Integer.valueOf(fooToWrap);

你想达到什么目的?

鉴于您的评论,我认为您想要的是:

Integer.valueOf(resultSet.getInt(3))
于 2012-05-15T12:38:30.480 回答
0

如果我没记错的话,如果 int 扩展 int,你只能做这样的转换。您是否尝试过将其变成 Integer 对象,而不仅仅是 int 数据类型?

于 2012-05-15T11:20:21.753 回答