先來看乙個類
public class complexobject implements serializable
複雜物件complexobject包含了如下屬性:
1基本型別:string、列舉、int
2date物件
3.自定義物件
4.list集合
5.map物件
如果輸出的物件更易看清每乙個欄位的值呢
1.tostringbuilder的預設style
呼叫方式:tostringbuilder.reflectiontostring(object)
2.tostringbuilder的預設multi_line_style
呼叫方式:tostringbuilder.reflectiontostring(customer,tostringstyle.multi_line_style)
3.自定製tostring方法
private void getfields(object obj, stringbuffer str, int level, boolean islistelement)
throws illegalargumentexception,
illegalacces***ception
class clazz = obj.getclass();
if (clazz == complexobject.class)
// 當前輸入物件為list元素
if (islistelement)
level++;
islistelement = false;
}// 獲得當前輸入物件宣告的所有屬性
field fieldarray = clazz.getdeclaredfields();
for (field field : fieldarray)
field.setaccessible(true);
// 當前屬性未賦值
if (field.get(obj) == null) else if (field.gettype() == subtype1.class
|| field.gettype() == subtype2.class ) else if (field.gettype() == list.class)
} else if (field.gettype() == map.class)
}} else if (field.gettype() == date.class)
else
}}
呼叫方式:
public string tostring() catch (illegalargumentexception e) catch (illegalacces***ception e)
return str.tostring();
}
輸出結構:
----------------------
complexobject
└—— serialversionuid = -3986831089858789914
└—— id= 123
└—— name = ss
└—— type = private_account
└—— national = null
└—— createstatus = open
└—— enablestatus = can_use
└—— gmtcreate = 2008-09-18 17:42:27
└—— gmtmodified = null
└—— memo = null
└—— subtype1list
└—— subtype1
└—— subtype1屬性1= 2088102000419591
└—— subtype1屬性2 = 2
└—— subtype1屬性3 = 3
└—— subtype1屬性4 = 4
└—— subtype1屬性5 = 5
└—— subtype2
└—— subtype2屬性1= 1
└—— subtype2屬性2= 2
└—— subtype2屬性3= 3
└—— subtype2屬性4= 4
└—— infomap
└—— key1= value1
└—— key2= value2
└—— key3= value3
└—— key4= value4
使用反射,支援任意物件型別巢狀 用VisualBrush定製複雜的按鈕樣式
自 visualbrush是一種比較特殊的筆刷,它的功能仍然是用來給元素填充圖案,但它的內容卻可以是各種控制項。你可以將其理解為乙個普通的容器,但在其內部的所有控制項都會失去互動能力,而只保留顯示能力。你可以通過本例學習到關於visualbrush的使用方法,以及複雜樣式的定製技巧。首先來看一下我們...
用VisualBrush定製複雜的按鈕樣式
visualbrush是一種比較特殊的筆刷,它的功能仍然是用來給元素填充圖案,但它的內容卻可以是各種控制項。你可以將其理解為乙個普通的容器,但在其內部的所有控制項都會失去互動能力,而只保留顯示能力。你可以通過本例學習到關於visualbrush的使用方法,以及複雜樣式的定製技巧。首先來看一下我們將要...
Unity定製 Image Text的物件生成
2016.4.14 昨天看到 雨凇的 unity3d研究院之ugui乙個優化效率小技巧 完善了他所說的 using unityengine using unityengine.ui using system.collections using unityeditor using unityengin...