0
点赞
收藏
分享

微信扫一扫

java自定义注解(java自定义注解做参数校验)

java 自定义的注解有什么作用
自定义注解,可以应用到反射中,比如自己写个小框架。
如实现实体类某些属性不自动赋值,或者验证某个对象属性完整性等
本人自己用过的验证属性值完整性:
@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

userClass = TarResearch .class;

Field[] field = userClass.getDeclaredFields();
for (int i = 0; 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应用中,可以使用注解替代配置文件配置,从而提高应用的灵活。代码中的注释?当你编写一些大型的程序时,注释是很有必要的,用它可以不用阅览代码,就知道这一块是干什么用的。当你给他人分享代码,或发布教程时,注释可以解释每行代码的意义,使人更易于理解。自定义注解,可以应用到反射中,比如自己写个小框架。
如实现实体类某些属性不自动赋值,或者验证某个对象属性完整性等
本人自己用过的验证属性值完整性:
@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 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;
如何实现自定义Java运行时注解功能
主要是考虑到性能上面的问题。运行时注解主要是完全依赖于反射,反射的效率比原生的慢,所以在内存比较少,CPU比较烂的机器上会有一些卡顿现象出现。而编译时注解完全不会有这个问题,因为它在我们编译过程(java->class)中,通过一些注解标示,去动态生成一些类或者文件,所以跟我们的APK运行完全没有任何关系,自然就不存在性能上的问题。所以一般比较著名的开源项目如果采用注解功能,通常采用编译时注解百度 java 自定义注解 ~

举报

相关推荐

0 条评论