背景:在写手机接口的时候,由于传递的某些不重要的字段为null,所以导致手机客户端没有判断我空的时候会出现闪退,需要对所有返回的字符串类型的数据进行初始化默认值;
思路:主要使用c#实现的,但是我觉得对Java也是一样适用的。在一个基类中的构造函数进行反射,获取继承的子类的所有的属性,判断属性的类型是String类型的就可以对其赋值。
class Base
{
public Base() {
Type t = this.GetType();
PropertyInfo[] pis = t.GetProperties();
// object obj = Activator.CreateInstance(t);
foreach (PropertyInfo pi in pis)
{
if (pi.PropertyType == Type.GetType("System.String"))
{
//Console.WriteLine(pi.Name + "-------------" + pi.PropertyType + "--------");
pi.SetValue(this, "默认值", null);
}
}
}
}
参考文献:http://blog.csdn.net/educast/article/details/2894892
http://www.jb51.net/article/25863.htm(C#的反射的知识)