我没有任何Crypto ++库的经验。在我的项目中,我需要将GrantedAuthority
类型转换为Integer
。这就是我想要的:
int
这是我得到的错误:
int low_bound1=8;
int low_bound2=9;
Integer x=1,y=2;
low_bound1=(int)x;
low_bound1=(int)y;
有可能吗?如果是,那么如何?
答案 0 :(得分:0)
有可能吗?如果是,那么如何?
是的,可能可以做,但不能用简单的C风格演员。
以下是手册中的Integer类的文档:Integer Class Reference。在 ACCESSORS 标题下,有两种方法:
bool IsConvertableToLong () const
确定Integer是否可以转换为Long。更多...
signed long ConvertToLong () const
将整数转换为长整数。更多...
所以你需要做一些事情:
int low_bound1, low_bound2;
Integer x=1,y=2;
if (x > std::numeric_limits<int>::max() || x < std::numeric_limits<int>::min())
throw std::out_of_range("Integer x does not fit int data type");
if (y > std::numeric_limits<int>::max() || y < std::numeric_limits<int>::min())
throw std::out_of_range("Integer y does not fit int data type");
low_bound1 = static_cast<int>(x.ConvertToLong());
low_bound2 = static_cast<int>(y.ConvertToLong());