大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
1
该方法用于取得指定的实体类的实体名称。如果指定的实体类的实体标签定义了名称,则取该名称,否则取类名。
例如:有实体类SampleEntity
Java代码
- 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
Java代码
- import javax.persistence.Entity;
- @Entity
- public 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”
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192625.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...