2017-04-03 49 views
0

我们有一个通用API来获取有效负载(考虑JSON)以及来自不同客户端的客户端ID。运行时的Java Casting

如何使用客户端ID将负载转换为适当的POJO。

Rough Idea是将负载反序列化为java对象,并基于clientId将JAVA对象转换为相应的POJO。

我有一个ENUM类的地方配置,看起来如下所示。

public enum SourceEnum { 
    ClientId1(A.class); 
    ClientId2(B.class); 

    Class clazz; 
    SourceEnum(Class clazz) { 
     this.clazz = clazz; 
    } 

    public Class getClazz(){ 
     return this.clazz; 
    } 
} 

我们可以使用SourceEnum.valueOf(clientId).getClazz()来获取类。

如何使用此信息将java对象转换为相应的类对象?

这是解决这个问题的正确方法吗?想试试看是否有更好的方法来解决这个问题

+1

你会想用[杰克逊](https://github.com/FasterXML/jackson-databind/)来做你需要的。 – ericbn

+2

[JSON在Java中的对象]的可能的重复(http://stackoverflow.com/questions/30587161/json-to-object-in-java) – ericbn

+2

提示:在您的问题铸造术语是误导。你的意思是转换。 – GhostCat

回答

-1

如果你想将给定的json转换为java对象,请尝试使用google的Gson

+1

仅链接(或链接 - 主要)答案皱起了眉头,很快就被拒绝了。请考虑扩大您的答案以实现自给自足(由于多种原因,外部油墨可能会变得不可用,使答案不完整,几乎无用) – ochi