我的查询是在包装上,使用Object类作为包装。Object是否有本机类型安全的包装和拆箱?
我的目标是采取原始int(或int的包装)并从通用对象中取消它。
唯一的问题是我将在运行时使用混合类型,所以我无法一般键入方法的返回类型。 T var1!=(T)var2
我现在可以做的事情有过多的开销,因为我不能假设Object包装int类型的值,所以我解析它。
Object int_wrapped_in_object = 1;
Integer.valueOf(String.valueOf(int_wrapped_in_object));
//I could cast from Object to int with:
//(int) int_wrapped_in_object
//but this will always anticipate a classcastexception in case the value was wrapped with another type, like String
这个工程,但我会理想地喜欢跳过一个解析的步骤,只是解开整数值的框。
整数包装类不支持valueOf(Object o),可能是因为Object没有实现相对转换。它(对象)支持toString()。但是不要到Int()。这是非常奇怪的,因为Object确实可以包装一个原始的int。为什么这种情况超出了我的知识水平,所以我只能用我所拥有的东西来工作。对于我所知道的,甚至可能有本地支持将对象解包为int。
请帮我找一个解决方案,包括使用最少的解析和引入少数例外来获取原始的int值。
请在您需要此类解决方案时提供示例代码。 –
你为什么试图从不包含int的东西中取出一个int? – user2357112
“,以防其值被另一种类型包裹,如字符串”这究竟是什么意思?如果你有一个字符串,那么你没有一个整数值“包装”,它只是一个字符串。 – leonbloy