小编Har*_*hit的帖子

什么是@JsonTypeInfo和@JsonSubTypes用于杰克逊

在jackson中使用for的@JsonTypeInfo和@JsonSubTypes注释是什么?

public class Lion extends Animal {

private String name;

@JsonCreator
public Lion(@JsonProperty("name") String name) {
    this.name = name;
}

public String getName() {
    return name;
}

public String getSound() {
    return "Roar";
}

public String getType() {
    return "carnivorous";
}

public boolean isEndangered() {
    return true;
}

@Override
public String toString() {
    return "Lion [name=" + name + ", getName()=" + getName() + ", getSound()=" + getSound() + ", getType()=" + getType() + ", isEndangered()="
            + isEndangered() + "]"; …
Run Code Online (Sandbox Code Playgroud)

java serialization jackson deserialization

20
推荐指数
1
解决办法
2万
查看次数

Java:何时跳过对象的空检查?

我在Java代码中使用了很多防御性空检查.虽然他们很好地服务于他们的目的(大部分时间),但他们的代码与"丑陋"的代码有很大关系.

将这些空检查始终放入是否真的有意义?例如:

if(object == null){
  log.error("...")
  throw new SomeRuntimeException("");
} else{
  object.someMethod();
}
Run Code Online (Sandbox Code Playgroud)

实际上,上面的代码相当于声明 object.someMethod();

如果object的值为null,则在两种情况下都会抛出异常(后面的NullpointerException).

掩码NullpointerExcetion(NPE)并抛出一些自定义RunTimeException(如上面的代码片段)真的有意义吗?我观察到一些开发人员将NPE视为邪恶,经常试图找出掩盖它的防御方法并用一些自定义异常掩盖它.这种掩蔽真的需要吗?

  1. 如果我们无法从该null状态恢复,那么允许我们的代码通过NPE失败是否有意义?(在上面的例子中,它似乎是一个不可恢复的场景.)
  2. 如果没有,为什么?

java null object nullpointerexception

9
推荐指数
1
解决办法
405
查看次数