我编写了一个简单的程序,它从 OpenWeatherMap API 检索天气数据并将 JSON 响应反序列化为对象。其中一个对象称为 CurrentForecast。这是该课程的一个片段:
public class CurrentForecast {
String name;
long dt;
LocationCoord coord;
List<WeatherObject> weather;
MainInfo main;
WindInfo wind;
public static class LocationCoord {
Double lon;
Double lat;
public LocationCoord(Double lon, Double lat) {
this.lon = lon;
this.lat = lat;
}
}
public static class WeatherObject {
String description;
public WeatherObject(String description) {
this.description = description;
}
}
public static class MainInfo {
Double temp;
Double temp_min;
Double temp_max;
Double pressure;
Double humidity;
public MainInfo(Double temp, Double pressure,
Double humidity) {
this.temp = temp;
this.pressure = pressure;
this.humidity = humidity;
}
CurrentForecast 类中嵌套了几个类。CurrentForecast 和嵌套类的字段未设置为私有或公共。我也没有包含用于 CurrentForecast 的构造函数来初始化“name”和“dt”。我还注意到,如果我不包含其他嵌套类的构造函数,那么 JSON 数据就可以反序列化。
我的问题是,我是否将 CurrentForecast 和嵌套类的字段设置为私有并包含 get 方法?我是否还必须包含构造函数,或者我可以把它们去掉吗?
希望获得有关如何正确设置我的对象类(特别是在主驱动程序中使用 GSON 反序列化 JSON 数据)和改进我的编程风格的输入。谢谢!