我有不同类型的对象集。 Ex :员工emp,地址adr
这两个类有属性列表
public class Employee{
private Stringname;
private int age;
}
public class Adress {
private String HouseNo;
private string Street;
private string pin;
}
每个属性都分配了2个字符的值
Name (NA), age (AG), HouseNo(HN),Street(ST), pin(PN)
我需要用这些数据构造一个字符串,并用%
分隔输出:
NA%Vidhya%AG%30%HN%80%ST%第一交叉%PN%100100
答案 0 :(得分:0)
每个类最了解自己的数据,所以我会让每个类负责生成字符串。据我所知,每个字段的两个字符代码对于每个类和成员都是唯一的,并且仅在生成字符串时使用,因此只有类才需要它们。
interface AttributeDescription {
String generateDescription();
}
public class Employee implements AttributeDescription {
//members...
public String generateDescription() {
return String.format(“NA%%%s%%AG%%%d”, name, age)
}
然后只需为实现该接口的所有对象调用此方法。
AttributeDescription object = ...
String attr = object.generateDescription();
根据要求,我认为它不能超出这个范围。
更新
最好有一个构建器类来构建字符串,以便在类之间获得更统一的行为。这是一个例子
public class AttributeBuilder {
private builder = new StringBuilder();
public String getAttribute() {
return builder.toString();
}
public void add(String code, String value) {
if (value == null) {
return;
}
builder.append(code);
builder.append(‘%’);
builder.append(value);
builder.append(‘%’);
}
}
然后你还必须以类似的方式为其他数据类型实现add(...)方法。然后可以像
一样使用构建器public String generateDescription() {
AttributeBuilder builder = new AttributeBuilder();
builder.add(“NA”, name);
builder.add(“AG”, age);
return builder.getAttribute();
}