java自定义注解有什么作用?

转自:https://zhidao.baidu.com/question/1668622526729638507.html

自定义注解,可以应用到反射中,比如自己写个小框架。

如实现实体类某些属性不自动赋值,或者验证某个对象属性完整性等

本人自己用过的验证属性值完整性:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@Target (ElementType.FIELD)   
@Retention (RetentionPolicy.RUNTIME)
public  @interface  IgnoreProperty {
}
然后实体类中:
public  class  TarResearch  implements  Serializable{
 
  @IgnoreProperty
  private  static  final  long  serialVersionUID = 1L;
 
  @IgnoreProperty
private   Integer researchId;
 
  @IgnoreProperty
  private  TarUser userId;
 
  private  String version;
 
  private  String grade;
....
   
 
然后action类中  
// 验证数据完整性
 
   Class<TarResearch > userClass = TarResearch . class ;
 
   Field[] field = userClass.getDeclaredFields();
 
   for  ( int  i =  0 ; i < field.length; i++) {
 
    if  (field[i].getAnnotation(IgnoreProperty. class ) !=  null ) {
 
     continue ;
 
    }
 
    String fie = field[i].getName().substring( 0 1 ).toUpperCase()
 
      + field[i].getName().substring( 1 );
 
    Method method = userClass.getMethod( "get"  + fie);
 
    Object obj = method.invoke(u);
 
    if  (obj ==  null ) {
 
     sendResponseMsg(response,  "数据错误" );
 
     return  null ;
 
    }
 
   }

你说的是annotation, 就是带个@号的,注解其实是类反射的一些延伸,在一些需要配置文件的Java应用中,可以使用注解替代配置文件配置,从而提高应用的灵活。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值