检查java中是否存在对象属性

检查java中是否存在对象属性,java,Java,例如 这将解析为此类对象的列表: [{ 'name': 'Foo', 'distance': 2 },{ 'name': 'Bar' }] 但是,对于条形图,城市对象将不具有“距离”属性。我可以像检查对象一样检查类型吗?比如: class City { public String name; public int distance; } 如何检查距离是否已设置?您可以使用整数而不是int,并检查它是否为null。对于其他atributes

例如

这将解析为此类对象的列表:

[{
     'name': 'Foo',
     'distance': 2
},{
     'name': 'Bar'
}]
但是,对于条形图,城市对象将不具有“距离”属性。我可以像检查对象一样检查类型吗?比如:

 class City {
     public String name;
     public int distance;
 }

如何检查距离是否已设置?

您可以使用整数而不是int,并检查它是否为null。对于其他atributes也可以这样做,使用类而不是原始类型

if(city.distance)
。只需使用
Integer
而不是
int
并检查空值

请记住,您必须使用void构造函数创建一个
City
类:

Gson gson = new Gson();    
City city = gson.fromJson(json, City.class);

使用
city.getDistance()==null
检查
null
如果(距离!=null)那么。。。这取决于解析器。。。如果解析器决定将距离设置为0。。。但我怀疑它能否成功地生成
int
null
@dystroy正如我所说,解析器不会将其设置为0。@artworkadシ 在java中,没有未定义的
。这是一个
int
。你认为它能做什么?你可以在默认情况下签署一个负数,mb使用getter和setter更好?+1谢谢你,尝试了这个,效果很好!
public class City {

    public Integer distance;
    public String name;

    public City() {/*void constructor*/}

    public Integer getDistance() {
        return distance;
    }
    public void setDistance(Integer distance) {
        this.distance = distance;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}