public class A {
private Class<?> dataType;
public Class<?> getDataType() {
return dataType;
}
public void setDataType(Class<?> dataType) {
this.dataType = dataType;
}
}
public class B {
public static void main(String[] args) {
try {
File file = new File( "fileName.json");
A a = new ObjectMapper().readValue(file, A.class);
} catch (IOException io) {
io.printStackTrace();
}
}
}
fileName.json文件中的内容: { “dataType”:“java.lang.String” }
我收到错误:org.codehaus.jackson.map.JsonMappingException:无法访问私有java.lang.Class()(来自类java.lang.Class;无法设置访问权限:无法创建java .lang.Class构造函数可访问。
答案 0 :(得分:0)
import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonProperty;
公共类A {
private Class<?> dataType;
public Class<?> getDataType() {
return dataType;
}
public void setDataType(Class<?> dataType) {
this.dataType = dataType;
}
@JsonCreator
public A(@JsonProperty("dataType") String dataType)
{
try {
this.dataType = Class.forName(dataType);
} catch (ClassNotFoundException c) {
c.printStackTrace();
}
}
}