我正在使用的库中的方法返回一个对象,但它实际上是一个对象数组。我被困在需要这个价值的地方。很奇怪,没有人要求这样的转换。
答案 0 :(得分:7)
Object[] objects = new Object[] {1,"fde", 5L};
Object casted = objects;
Object[] recovered = (Object[]) casted;
答案 1 :(得分:2)
Object o = ...
Object[] array = { o };
答案 2 :(得分:2)
许多API返回Object,因为这是最常返回的内容。对于可以存储许多不同类型的通用容器,通常就是这种情况。然后,getter样式方法无法返回任何更具体的内容。
不应该有任何明确的“转换”。只是施展它,你就完成了。
Object object = MyApi.getFoo();
Object[] theRealThing = (Object[]) object;
或者如果你想确保演员阵容能够奏效:
Object object = MyApi.getFoo();
if (object instanceof Object[]) {
Object[] theRealThing = (Object[]) object;
} else {
System.out.println("The impossible has happened!"); // or something like that
}
答案 3 :(得分:1)
你可以像这样简单地投射:
Object[] arrayOfObjects = (Object[]) yourMethod();