Java 我可以实例化一个超类并根据提供的参数实例化一个特定的子类吗
我正在使用谷歌的GSON软件包 我正在将JSON转换为Java 我有一段代码,我在那里进行转换Java 我可以实例化一个超类并根据提供的参数实例化一个特定的子类吗,java,javascript,json,inheritance,gson,Java,Javascript,Json,Inheritance,Gson,我正在使用谷歌的GSON软件包 我正在将JSON转换为Java 我有一段代码,我在那里进行转换 Gson gson = new Gson(); Type collectionType = new TypeToken<Collection<QueryProperty>>() {}.getType(); Collection<QueryProperty> queryProperties = gson.fromJson(query, collectionType);
Gson gson = new Gson();
Type collectionType = new TypeToken<Collection<QueryProperty>>() {}.getType();
Collection<QueryProperty> queryProperties = gson.fromJson(query, collectionType);
我现在希望能够拥有不同类型的QueryValue
我想添加一个NumericQueryValue类(QueryValue的子类),这样我就可以传入一组边界来查询数据库
double lower;
double upper;
并希望创建一个新的ResourceQueryValue(QueryValue的子类),它看起来与QueryValue用于:
int id;
String uri;
String name;
不管怎样,我都能做到这一点。也就是说,它有一个通用的QueryValue类,但根据JSON提供的参数返回正确的子类
如果我不清楚,请务必告诉我。如果您需要检查值,或者如果您只需要基于类型创建实例,则听起来您想创建一个。Gson除了实现自定义反序列化处理之外,目前没有一个简单的多态反序列化机制。下一个版本看起来将提供一个内置的解决方案 先前StackOverflow.com关于此主题的问答(部分附有示例):
double lower;
double upper;
int id;
String uri;
String name;