我有一个 Java 应用程序,我正在使用 JSoup 库进行一些网络抓取。我正在使用该库,它返回 Strings 6 的集合。我需要将这 6 个随机字符串映射到对象的属性。我知道字符串的输入顺序以及什么数字映射到什么属性。我不认为我的方法是处理这个问题的最佳方法。感觉很失落,可读性很差,我只是想知道是否有更好的方法来做到这一点。我正在考虑使用枚举或单独使用这些行。长话短说,这是一个代码 fragment 。感谢您的帮助。
List<String> strings = JSoup.getStrings();
Car car = new Car();
int i = 0;
for(String s : strings) {
switch (i) {
case 0:
car.setMake(s);
break;
case 1:
car.setModel(s);
break;
.....
}
i++;
}
最佳答案
由于这个问题是关于最佳实践的,因此您应该考虑在 Car 中提供一个构造函数,该构造函数将字符串列表作为输入。然后,构造函数将从字符串列表中一一初始化汽车的字段,因为这就是构造函数的用途。这意味着用于填充汽车实例的代码现在将位于一个位置,即 Car 类内部。
这种方法将消除创建 Car 实例的代码手动初始化 Car 实例的需要。无论有多少个不同的类创建一个 Car,每个类中的初始化代码都不会重复。将初始化代码放在汽车本身内部可以提高可重用性。这不就是编写类(class)的目的吗?
关于java - 最佳实践 : Map object properties from string collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12553891/