尝试使用mTheta = (float)Math.atan2(imag, real);
时遇到问题。
场景如下:我有一个org.codehaus.jackson.map.ObjectMapper.readValue(String content, Class<NestedObject> valueType)
类,其成员类为NestedObject
。 Container
类的成员Container
类型为java.util.List
。我使用这个抽象类是因为AbstractNestedObject
类中的List可能包含类Container
中的对象,也可能包含类Item
中的对象,我需要遍历列表并保存各自的内容。
对象结构用于将JSON字符串映射到我的Java对象。我的问题是,当我尝试反序列化JSON字符串时,我得到以下异常:
Container
我已阅读有关注释但这些似乎无法解决我的问题,因为我的JSON字符串没有任何&#39;类型&#39;或者&#39; name&#39;。
也许有人可以帮我这个?这是我的课程:
NestedObject:
org.codehaus.jackson.map.JsonMappingException: Can not construct instance of src.AbstractNestedObject, problem: abstract types can only be instantiated with additional type information
抽象类:
public class NestedObject {
private Container container;
public NestedObject() {
}
public NestedObject(Container Container) {
this.setContainer(container);
}
public Container getContainer() {
return container;
}
public void setContainer(Container container) {
this.container = container;
}
}
两种对象类型的枚举:
public abstract class AbstractNestedObject {
private ObjectType objectType;
public AbstractNestedObject() {
}
public AbstractNestedObject(ObjectType objectType){
this.objectType = objectType;
}
public ObjectType getObjectType() {
return objectType;
}
}
Container类:
public enum ObjectType {
CONTAINER,
ITEM;
}
Item类:
import java.util.List;
public class Container extends AbstractNestedObject {
private String containerProperty;
public List<AbstractNestedObject> items;
public String getContainerProperty() {
return containerProperty;
}
public void setContainerProperty(String containerProperty) {
this.containerProperty = containerProperty;
}
public List<AbstractNestedObject> getItems() {
return items;
}
public void setItems(List<AbstractNestedObject> items) {
this.items = items;
}
}
测试类:
public class Item extends AbstractNestedObject {
private String color;
private String shape;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getShape() {
return shape;
}
public void setShape(String shape) {
this.shape = shape;
}
}
所以基本上,我有一个JSON字符串,我想要映射到以下Java对象结构:一个带有Container对象的Nestedobject类,该对象具有一个列表,其中列表可以包含一个具有属性颜色和形状的简单Item OR或容器对象再次具有包含Item或Container等的列表。
我希望我能够清楚地描述我的问题,有人可以帮助我。