Java 注解编程学习案例Word文档下载推荐.docx
《Java 注解编程学习案例Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java 注解编程学习案例Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
/**
*@date2011-4-15
*@see
*@author刘庆
*@version1.0
*
*/
@Retention(value=RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.FIELD})
public@interfaceComAnnotation{
/**
*显示字符输出名
*@returnString
Stringname()default"
;
"
*排序如果按order值排序
*@return
intorder()default1;
}
3.实现接口方法
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.logging.Logger;
*2011-4-15
*@authorliuqing
publicclassComComponentInfoUtil{
//usejdklogger
privatestaticLoggerlog=Logger.getLogger(ComComponentInfoUtil.class.getName());
*TestComComponentInfo
*@paramargs
*@throwsException
publicstaticvoidmain(Stringargs[])throwsException{
ComComponentInfoUtilcom=newComComponentInfoUtil();
UserInfoTestp=newUserInfoTest();
p.setAge(23);
p.setUsb(false);
p.setSex("
male"
);
p.setId("
2323"
System.out.println(com.getObjectToStr(p,"
$|$"
true));
}
*spitstring
*@paramobj
*@paramspit
*@paramisOrder
publicStringgetObjectToStr(Objectobj,Stringspit,booleanisOrder)
throwsException{
StringBufferstrBuff=newStringBuffer();
Classclazz=obj.getClass();
HashMap<
Integer,String>
map=newHashMap<
();
inti=0;
for(Methodmethod:
clazz.getMethods()){
if(this.isClassMethod(method.getName())){
ComAnnotationcomAnnotation=
this.getMethodAndFieldAnnotion(method,clazz);
if(i>
0){
strBuff.append(spit);
}
if(comAnnotation!
=null){
//displayinformation
if(comAnnotation.name()==null
||"
.equals(comAnnotation.name())){
strBuff.append(this.getFieldNameByMethodName(method
.getName())+"
="
).
append(method.invoke(obj,null));
}
else{
strBuff.append(comAnnotation.name()+"
//iftrueisorder
if(isOrder){
if(comAnnotation.name()==null
||"
Stringstr=this.getFieldNameByMethodName(
method.getName())+"
+
method.invoke(obj,null);
if(map.containsKey(comAnnotation.order())){
log.info("
name"
+comAnnotation.name()+"
:
order="
+comAnnotation.order()+"
alreadyexists"
}
map.put(comAnnotation.order(),str);
}
else{
Stringstr=comAnnotation.name()+"
+
}
else{
strBuff.append(this.getFieldNameByMethodName(
method.getName())+"
Stringstr=comAnnotation.name()+"
method.invoke(obj,null);
if(map.containsKey(comAnnotation.order())){
log.info("
+comAnnotation.order()+"
map.put(comAnnotation.order(),str);
i++;
}
}
if(isOrder){
intj=0;
StringBufferstrBuffOrder=newStringBuffer();
for(Map.Entry<
en:
map.entrySet()){
if(j>
0){
strBuffOrder.append(spit+en.getValue());
}
strBuffOrder.append(en.getValue());
j++;
returnstrBuffOrder.toString();
}
else{
returnstrBuff.toString();
*getAnnotationInformation
*@parammethod
*@paramclazz
publicComAnnotationgetMethodAndFieldAnnotion(Methodmethod,
Classclazz)throwsException{
ComAnnotationcomAnn=method.getAnnotation(ComAnnotation.class);
if(comAnn!
returncomAnn;
StringvarFieldName=this.getFieldNameByMethodName(met