getMethod和getAnnotation
来源:互联网 发布:淘宝店铺装修怎么还原 编辑:程序博客网 时间:2024/05/29 16:10
而getDeclaredFields()只能获取自己声明的各种字段,包括public,protected,private。
1、
该方法用于取得指定的实体类的实体名称。如果指定的实体类的实体标签定义了名称,则取该名称,否则取类名。
例如:有实体类SampleEntity
import javax.persistence.Entity; @Entity(name = "SpecialName")public class SampleEntity { }以SampleEntity类作为参数调用entityName方法:
1、方法中第一行,String entityName = entityClass.getSimpleName();
变量entityName的值设为类SampleEntity的短名称,即“SampleEntity”。
2、方法中第二行,Entity entity = entityClass.getAnnotation(Entity.class);
即取得SampleEntity的@Entity标签。
3、方法中第三行到第六行,if(entity.name()!=null&&!"".equals(entity.name()))
{
entityName = entity.name();
}
即@Entity标签中定义了name并且name不是空串时, 变量entityName的值设为@Entity标签中name的值,即“SpecialName”。
4、返回变量entityName,值为“SpecialName”。
如果SampleEntity的@Entity标签没有定义name
import javax.persistence.Entity; @Entitypublic class SampleEntity { }
方法中第三行,if(entity.name()!=null&&!"".equals(entity.name()))条件不成立,最终方法返回变量entityName,值为“SampleEntity”。
2、Method getMethod(String name, Class<?>... parameterTypes)
--返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。
parameterTypes如:String.class、int.class这些字节码才是Class类的对象
也可以此种方式:
Method method = XXX.getClass().getMethod(methodName,new Class[0]);
//getMethod第一个参数是方法名,第二个参数是该方法的参数类型,
//因为存在同方法名不同参数这种情况,所以只有同时指定方法名和参数类型才能唯一确定一个方法
如一个函数 int Test(int a, String str);
对应的getMethod方法:
1. getMethod("Test",int.class,String.class);
2. getMethod("Test",new Class[]{int.class,String.class});
然后通过invoke来调用此方法:
函数原型:Object java.lang.reflect.Method.invoke(Object receiver, Object... args)
//Method类的invoke(Object obj,Object args[])方法接收的参数必须为对象,
//如果参数为基本类型数据,必须转换为相应的包装类型的对象。invoke()方法的返回值总是对象,
//如果实际被调用的方法的返回类型是基本类型数据,那么invoke()方法会把它转换为相应的包装类型的对象,再将其返回
receiver:该方法所在类的一个对象
args: 传入的参数 如 100,“hello”
- getMethod和getAnnotation
- getAnnotation
- getMethod()和invoke()方法应用
- getDeclaredMethod()和getMethod()的区别
- 反射中的getDeclaredMethod和getMethod
- getDeclaredMethod()和getMethod()的区别
- getDeclaredMethod()和getMethod()的区别
- getDeclaredMethod 和 getMethod 的区别
- getDeclaredMethod()和getMethod()的区别
- getDeclaredMethod和getMethod的区别
- JAVA 中 getMethod()和invoke()方法应用
- getDeclaredMethod方法和getMethod方法区别?
- getMethods、getMethod和invoke()方法的使用
- Java 反射机制中 getMethod()和getDeclaredField()区别
- 【JAVA】【反射】JAVA 中 getMethod()和invoke()方法应用
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredMethod()区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- UML类图介绍及画法
- reset.css
- Maven实战(七、八)——常用Maven插件介绍
- Trafodion 最多支持多少表
- css3中 百分比宽度减去固定宽度的写法
- getMethod和getAnnotation
- 利用sqoop将hive数据导入导出数据到mysql
- Mac github 提交更新代码
- 在ubuntu14.04下用自己的数据集训练faster-rcnn遇到的问题
- tree
- chmod 修改权限
- Maven命令
- java concurrentHashMap 源码解析
- 返回值DataResponse