我知道如果User.json文件有
{
"name" : { "first" : "Joe", "last" : "Sixpack" },
"gender" : "MALE",
"verified" : false,
"userImage" : "Rm9vYmFyIQ=="
}
Run Code Online (Sandbox Code Playgroud)
我可以像这样构造一个User对象:
User user = mapper.readValue(new File("user.json"), User.class);
Run Code Online (Sandbox Code Playgroud)
但是如果文件User.json具有以下内容,我该如何构造对象列表:
{
"name" : { "first" : "Joe", "last" : "Sixpack" },
"gender" : "MALE",
"verified" : false,
"userImage" : "Rm9vYmFyIQ=="
},
{
"name" : { "first" : "Jane", "last" : "Austen" },
"gender" : "FEMALE",
"verified" : false,
"userImage" : "DFREWEWE=="
}
Run Code Online (Sandbox Code Playgroud)
?
我有一个层次结构,其中Square,Triangle和Circle都从Shape扩展.我有一个工作方法:
public void someMethod() {
File file = new File("File_with_squares");
ThirdPartyClass foo = new ThirdPartyClass();
Square[] squares = foo.someMajicMethod(Square[].class,file);
for (Square square: squares)
square.draw();
}
Run Code Online (Sandbox Code Playgroud)
现在我想使这个方法通用,以便它可以接受任何形状.我想能够打电话someMethod(Triangle.class,new File("File_with_triangles")或someMethod(Circle.class, new File("File_with_circles").我这样想:
public void someMethod(Class<? extends Shape> type, File shapeFile) {
ThirdPartyClass foo = new ThirdPartyClass();
#### What goes here??? ####
for (Shape shape: shapes)
shape.draw();
}
Run Code Online (Sandbox Code Playgroud)
应该在####那里有什么?#### ???