Java 注解编程学习案例.docx

上传人:b****2 文档编号:2141856 上传时间:2022-10-27 格式:DOCX 页数:22 大小:19.38KB
下载 相关 举报
Java 注解编程学习案例.docx_第1页
第1页 / 共22页
Java 注解编程学习案例.docx_第2页
第2页 / 共22页
Java 注解编程学习案例.docx_第3页
第3页 / 共22页
Java 注解编程学习案例.docx_第4页
第4页 / 共22页
Java 注解编程学习案例.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Java 注解编程学习案例.docx

《Java 注解编程学习案例.docx》由会员分享,可在线阅读,更多相关《Java 注解编程学习案例.docx(22页珍藏版)》请在冰豆网上搜索。

Java 注解编程学习案例.docx

Java注解编程学习案例

注解原理在这里就不具体介绍了,一定要记住你会反射就OK

因为注解也是类中的一部分好,我位来看看例子吧

1.需求介绍

当用户给出一个类,就可以根据这个类的成员属性变量生成name=liuqing分割符sex=male等

当然name也是可以改变的比如性名=liuqing,可以自定义顺序

在这里我们将使用注解来实现name表示可变名字,如果name(成员属性变量)

order为排序顺序。

2.定义接口

packageponent.annotation;

importjava.lang.annotation.ElementType;

importjava.lang.annotation.Retention;

importjava.lang.annotation.RetentionPolicy;

importjava.lang.annotation.Target;

/**

*@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.实现接口方法

packageponent.annotation;

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

*@return

*@throwsException

*/

publicStringgetObjectToStr(Objectobj,Stringspit,booleanisOrder)

throwsException{

StringBufferstrBuff=newStringBuffer();

Classclazz=obj.getClass();

HashMap<;Integer,String>;map=newHashMap<;Integer,String>;();

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()+";=";).

append(method.invoke(obj,null));

}

//iftrueisorder

if(isOrder){

if(comAnnotation.name()==null

||";";.equals(comAnnotation.name())){

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()+";=";+

method.invoke(obj,null);

if(map.containsKey(comAnnotation.order())){

log.info(";name";+comAnnotation.name()+";:

order=";

+comAnnotation.order()+";alreadyexists";);

}

map.put(comAnnotation.order(),str);

}

}

}

else{

if(comAnnotation.name()==null

||";";.equals(comAnnotation.name())){

strBuff.append(this.getFieldNameByMethodName(

method.getName())+";=";).

append(method.invoke(obj,null));

}

else{

strBuff.append(comAnnotation.name()+";=";).

append(method.invoke(obj,null));

}

//iftrueisorder

if(isOrder){

Stringstr=comAnnotation.name()+";=";+

method.invoke(obj,null);

if(map.containsKey(comAnnotation.order())){

log.info(";name";+comAnnotation.name()+";:

order=";

+comAnnotation.order()+";alreadyexists";);

}

map.put(comAnnotation.order(),str);

}

}

i++;

}

}

if(isOrder){

intj=0;

StringBufferstrBuffOrder=newStringBuffer();

for(Map.Entry<;Integer,String>;en:

map.entrySet()){

if(j>;0){

strBuffOrder.append(spit+en.getValue());

}

else{

strBuffOrder.append(en.getValue());

}

j++;

}

returnstrBuffOrder.toString();

}

else{

returnstrBuff.toString();

}

}

/**

*getAnnotationInformation

*@parammethod

*@paramclazz

*@return

*@throwsException

*/

publicComAnnotationgetMethodAndFieldAnnotion(Methodmethod,

Classclazz)throwsException{

ComAnnotationcomAnn=method.getAnnotation(ComAnnotation.class);

if(comAnn!

=null){

returncomAnn;

}

else{

StringvarFieldName=this.getFieldNameByMethodName(met

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1