java-在父抽象类函数中获取子类对象

java-在父抽象类函数中获取子类对象,java,json,inheritance,reflection,jackson,Java,Json,Inheritance,Reflection,Jackson,我试图使用jackson databind的ObjectMapper编写一个抽象类,它将字符串值映射到对象成员变量,反之亦然。这个抽象类将由json的每个pojo扩展 import java.io.IOException; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.

我试图使用jackson databind的ObjectMapper编写一个抽象类,它将字符串值映射到对象成员变量,反之亦然。这个抽象类将由json的每个pojo扩展

import java.io.IOException;    
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public abstract class JsonToString {

    public JsonToString toObject(String jsonString){

        ObjectMapper mapper = new ObjectMapper();
        try {
            mapper.readValue(jsonString, this.getClass());//problem
            System.out.println("inside object function of jsontostring : "+this);
        } catch (JsonParseException e) {
            System.out.println("Exception occured in mapping jsonString received to object" + e);
        } catch (JsonMappingException e) {
            System.out.println("Exception occured in mapping jsonString received to object" + e);
        } catch (IOException e) {
            System.out.println("Exception occured in mapping jsonString received to object" + e);
        }
        return this;        
    }
    public String toString(){
        ObjectMapper mapper = new ObjectMapper();
        String json = new String();
        try {
            json = mapper.writeValueAsString(this);
        } catch (JsonProcessingException e) {
            System.out.println("Trouble in mapping object to string in json class : "+this.getClass().getName());
        }
        return json;
    }   
}
此类将由每个json pojo扩展

因此,这里我想返回已完成映射的子类的对象。有人能帮我拿东西并把它还给我吗

我以这种方式调用此方法:

ITAGResponseInfo response = new ITAGResponseInfo();
response = (ITAGResponseInfo)response.toObject(cOutput);
System.out.println("Printing from the itagresponseinfo object : "+response);

在这里,ITAGResponseInfo扩展了JSONTSING类。

您遇到了什么问题?在父类中调用
getClass()
应该返回子类,除非您实际拥有父类的实例(如果它是抽象的,则不能)。mapper.readValue返回映射到json字符串值的类类型的对象。我想要的是,当前类成员应该映射到这些值,并且我不需要接收任何返回对象。调用response.toObject(jsonString)应该完成所有事情,并映射对象值。这是可能的吗?对不起,这个评论对我来说没有多大意义。我要说的是:我有一个json响应作为字符串。因此,首先我创建json pojo类对象。然后调用toObject函数,该函数将json字符串值映射到当前对象(如下所示)?