【问题标题】:How to copy content of generic object for specific object如何为特定对象复制通用对象的内容
【发布时间】:2019-11-14 10:22:44
【问题描述】:

我需要这段代码的支持,我有一个方法可以获取通用对象和一个字符串,所以根据我得到的字符串,我想将通用对象的内容复制到 特定对象,一个观察对象类型A没有与类型B相同的字段。例如:

提前致谢

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Authorize("Receiving")
@Path("/Print")

public Response LabelPrint(@Context HttpServletRequest request, 
                            final Object generic
                           ,@QueryParam("Type") final String Type) {

    if ( Typex.compareTo("X")) {

        TypeA typeA = generic;
        ...

    } else {
        TypeB typeB = generic;
        ...
    }

    return buildResponse(OK);   

}

我试过了,但没有成功

    if (labelType.compareTo("X")) {             
        TypeA x = new TypeA();
        BeanUtils.copyProperties(x, generic);
    }
    else {
        TypeA y = new TypeA();
        BeanUtils.copyProperties(y, generic);
    }

【问题讨论】:

    标签: object request polymorphism clone


    【解决方案1】:

    我设法做到了,接收如何字符串

    public Response LabelPrint(@Context HttpServletRequest request, 
                                final String objetcForImpression
                               ,@QueryParam("Type") final String Type) {
    
        if ( Typex.compareTo("X")) {
    
                try {
                    ObjectMapper objetcForImpression  = new ObjectMapper(); 
                    TypeA typeA = objetcForImpression.readValue(objetcForImpression, TypeA.class);                  
                } catch (JsonParseException e) {                
                    e.printStackTrace();
                } catch (JsonMappingException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }  
        }
    
            ...
    
        } else {
                try {
                    ObjectMapper objetcForImpression  = new ObjectMapper(); 
                    TypeB typeB = objetcForImpression.readValue(objetcForImpression, TypeA.class);                  
                } catch (JsonParseException e) {                
                    e.printStackTrace();
                } catch (JsonMappingException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } 
        }
    
        return buildResponse(OK);   
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2020-11-02
      • 2010-12-10
      • 2018-12-02
      相关资源
      最近更新 更多