繁体   English   中英

类作为静态方法的参数-Java

[英]Class as parameter on static method - Java

我想创建静态方法,并在该方法上使用jackson将json转换为某些对象。 我不明白如何在我的静态方法上使用类作为参数。

这是我的代码:

  static  Object  stringToObject(String jsonString, Class someClass) {
    ObjectMapper mapper = new ObjectMapper();

    SomeClass Object =  mapper.readValue(jsonString, someClass.class);
    //handling some exception


    return Object;
}

该代码将出错...有人可以给我建议如何完成该感谢

由于您始终希望保持类型安全,因此最好的解决方案是使用通用方法 ,该方法是带有类型变量的方法。

在您的情况下, ObjectMapper::readValue已经是通用方法,因此您需要的是对声明使用正确的语法:

static <T> T stringToObject(String jsonString, Class<T> clazz) {
  ObjectMapper mapper = new ObjectMapper();
  return mapper.readValue(jsonString, clazz);
}

static void test() {
   Foo foo = stringToObject("...", Foo.class);
}

这样,Java 类型推断就可以发挥作用,而您无需指定任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM