朋友
我面临着在特定场景中覆盖@JsonTypeInfo注释的问题。
请找到我的班级结构如下。
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY,
property = "@type")
class Animal {
public String name = "animalName";
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
}
class Cat extends Animal {
boolean likesCream = true;
public int lives = 10;
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Cat [likesCream=" + likesCream + ", lives=" + lives + ", name="
+ name + "]";
}
/**
* @return the likesCream
*/
public boolean isLikesCream() {
return likesCream;
}
/**
* @param likesCream
* the likesCream to set
*/
public void setLikesCream(boolean likesCream) {
this.likesCream = likesCream;
}
/**
* @return the lives
*/
public int getLives() {
return lives;
}
/**
* @param lives
* the lives to set
*/
public void setLives(int lives) {
this.lives = lives;
}
}
class Dog extends Animal {
public double barkVolume; // in decibels
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Dog [barkVolume=" + barkVolume + ", name=" + name + "]";
}
/**
* @return the barkVolume
*/
public double getBarkVolume() {
return barkVolume;
}
/**
* @param barkVolume
* the barkVolume to set
*/
public void setBarkVolume(double barkVolume) {
this.barkVolume = barkVolume;
}
}
现在我在Zoo类中使用了上面的类,我需要序列化/反序列化这些类。
class Zoo2i {
List<Animal> animals;
Dog dog;
/**
* @return the animals
*/
public List<Animal> getAnimals() {
return animals;
}
/**
* @param animals
* the animals to set
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.NONE, include = JsonTypeInfo.As.PROPERTY,
property = "@type")
public void setAnimals(List<Animal> animals) {
this.animals = animals;
}
/**
* @return the dog
*/
public Dog getDog() {
return dog;
}
/**
* @param dog
* the dog to set
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.NONE, include = JsonTypeInfo.As.PROPERTY,
property = "@type")
public void setDog(Dog dog) {
this.dog = dog;
}
}
因为我已经注释了动物类,它会默认将类型信息添加到它的所有子类以支持多态性。
列表可以包含所有类型,例如动物、狗、猫。我的要求是,我不希望列表中的动物实例本身的类型信息以及zoo2i类中Dog类型的其他属性的类型信息。
我成功地覆盖了setDog(……)的注释,但setAnimals(…)失败(请参阅Zoo2i类)。
在反序列化过程中,有没有不同的方法来排除带注释的类本身的类型信息,或者使类型信息可选(不是强制的)。
还有一件事,默认情况下,动物及其所有实例都被使用,类型信息被包含为动物被注释,我希望只有当我直接使用猫,狗时,类型信息才不应该被包含,并且在反序列化期间不应该被期望;
我不认为这是一个受支持的用例:您应该在要使用的基类型上使用< code>@JsonTypeInfo,或者在属性上使用(对于未标注的类型)。不要尝试混合方法。一个类型应该包含或者不包含类型信息——在某些情况下试图用一种方式,在其他情况下用另一种方式,听起来像是一种危险微优化。
我设置了一个HTTPS代理,这样HTTP客户端就可以安全地向代理发送普通HTTP请求。例如,客户机可以向代理发送加密的HTTP GET请求,代理将删除加密并将普通HTTP GET请求发送到终端站点。 我了解到这不是一个常见的设置,只有GoogleChrome具有内置功能来支持这样的场景。(信息在这里-http://wiki.squid-cache.org/Features/HTTPS#Encryp
例如,当我输入firstnum=1,5; ii dnum=3,2时,它返回和。但是当我用“.”而不是“”输入数字时,它会返回错误。 有人能给我解释一下吗?在教程中,我看到guy做了同样的程序,即使他使用了带“.”的双数,它也返回了和。
我试图在我的项目中实现这段代码,但不起作用RecycerView:如何捕捉ImageView上的onClick?: 我实现了一个接口来处理RecycerView中的onclick imageview和onclick row。问题是,当我试图在imageview上或在行中单击时,不会发生任何事情。如果我在我的ViewHolder类中尝试同样的方法,效果会很好,因为我可以看到祝酒词。问题是我需要这个工
问题内容: 我刚刚开始使用JSF,看起来很棒,但是我似乎无法弄清楚这最后的障碍。 我习惯了传统的Jquery AJAX函数,这在我的书中很完美。但是我希望找到一种方法使其与JSF协调工作。 这是一个说明我的情况的方案。 我的网站上有一个消息传递页面,用户可以在其中互相发送消息。所以在我的xhtml页面中,我看起来像这样: 效果很好。用户可以发布他们的消息,并将其加载到上面的对话div中。但是现在我
这里是我的pom.xml 4.0.0 org.springframework.Boot spring-boot-starter-parent 2.3.2.release com.king Gestpeacesecurity 0.0.1-snapshot Gestpeacesecurity用于Spring Boot的和平安全项目 我的实体代理,我使用lomback作为getter和setter 这是
在android Studio中,当我运行一个简单的代码来获取一个整数时,它会给我一个关于Scanner类的错误。 我只是希望它打印一个数字,但是与eclipse和其他ide不同,它给出了一个错误。我实际上试图修改gradle,但它没有工作(也许我做错了什么,老实说我不确定)。任务执行失败':yad:MyClass.main()'。 处理“命令”C:/程序文件/Android/Android St