[英]Difference between Getter/Setter and this other Data object Class
我正在开发一个带有返回 JSON 数据的 API 端点的移动应用程序,并且我做了很多 JSON 解析以在我的应用程序中显示不同类型的数据。
很长一段时间以来,我在 java object 类中使用带有构造函数的 Getter Setter 来处理数据,但最近同事告诉我一种不同且简单的方法来处理这些确切的数据。 两个不同的 dataObject 类是
我处理数据操作的方式
public class MyObject {
String _string1, _string2;
List<String> _stringsList;
public MyObject(String _string1, String _string2, List<String> _stringsList) {
this._string1 = _string1;
this._string2 = _string2;
this._stringsList = _stringsList;
}
public String getString1() {
return _string1;
}
public String getString2() {
return _string2;
}
public List<PostO> getStringList() {
return _stringsList;
}
}
我同事建议的方式
public class MyObject {
public String _string1, _string2;
public List<String> _stringsList;
public MyObject() { }
}
该应用程序适用于这两种方法。 第二种方法简短易行。 但这两者有什么区别? 第二种方法有什么技术缺陷吗? 在将我的课程转换为这种新方法之前,我真的需要知道。
如果重要的话,我开始用第二种方法使用 GSON。
从文档:
使用字段与吸气剂来指示 Json 元素
一些 Json 库使用类型的 getter 来推断 Json 元素。 我们选择使用非瞬态、static 或合成的所有字段(向上 inheritance 层次结构)。 我们这样做是因为并非所有类都是用适当命名的 getter 编写的。 此外,getXXX 或 isXXX 可能是语义而不是指示属性。
但是,也有很好的 arguments 来支持属性。 我们打算在后一个版本中增强 Gson 以支持属性作为指示 Json 字段的替代映射。 目前,Gson 是基于字段的。
如您所见, Gson
是基于字段的,在您的情况下,同一 class 的两个版本中的字段之间没有区别。
如果您仅将MyObject
用于反序列化目的,然后您将其转换为某些业务 model 您可以使用较短的版本。 但是,如果MyObject
在许多层上传播,它可能会与使用getters
/ setters
的其他类引入不一致。
也许Lombok图书馆最适合您和您的同事使用?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.