【发布时间】:2013-06-27 19:24:51
【问题描述】:
我有一个这样的对象:
public class Person {
String name = "Any";
int age = 9001;
}
public String getName() {return this.name;}
public int getAge() {return this.age;}
有没有办法使用如下所述的预定义模板打印这些数据?
Person firstOne = new Person();
print_throw_getters("Name: $name%s Age: $age%i",firstOne);
如果没有,我可以在 HashMap 中转换一个 Object:
public HashMap getHashMap {
HashMap test = new HashMap<String,Object>();
test.put("name",this.getName());
test.put("age",this.getAge());
return test;
}
有没有像这样在预定义模板中按键打印值的功能?
print_throw_keys("Name: $name%s Age: $age%i",firstOne.getHashMap());
我不想使用像 printf("name: $1%s",string) 这样的索引,因为模板差异很大,但传入的对象类型是唯一的。 .
UPD:感谢您的回答,但想法是会有一个包含模板列表的文件,该文件将插入数据中,例如:
String template1 = "Your selected Name is $name%s and selected age $age%i";
String template2 = "User: $name%s; Age: $age%i";
因此,对象本身将包含更多的 getter。
【问题讨论】:
-
覆盖
toString()。 -
我相信你可以从类中被覆盖的
toString()方法中返回一个格式化的字符串!