getMethod和getAnnotation「建议收藏」

getMethod和getAnnotation「建议收藏」1该方法用于取得指定的实体类的实体名称。如果指定的实体类的实体标签定义了名称,则取该名称,否则取类名。例如:有实体类SampleEntityJava代码importjavax.persistence.Entity; @Entity(name=”SpecialName”) publicclassSampleEntity{ …

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1

该方法用于取得指定的实体类的实体名称。如果指定的实体类的实体标签定义了名称,则取该名称,否则取类名。

 

例如:有实体类SampleEntity

Java代码 

 收藏代码

  1. import javax.persistence.Entity;  
  2.     
  3. @Entity(name = “SpecialName”)  
  4. public class SampleEntity {  
  5.     
  6. }  

 以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代码 

 收藏代码

  1. import javax.persistence.Entity;  
  2.    
  3. @Entity  
  4. public class SampleEntity {  
  5.    
  6. }  

 

 方法中第三行,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”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192625.html原文链接:https://javaforall.net

(0)
上一篇 2025年12月11日 下午1:43
下一篇 2025年12月11日 下午2:15


相关推荐

  • Cholesky分解法可以将矩阵分解为,其中L为_半正定矩阵cholesky分解

    Cholesky分解法可以将矩阵分解为,其中L为_半正定矩阵cholesky分解头文件:/**Copyright(c)2008-2011ZhangMing(M.Zhang),zmjerry@163.com**Thisprogramisfreesoftware;youcanredistributeitand/ormodifyit*underthetermsoftheGNUGeneralPublicLicenseasp…

    2025年7月9日
    4
  • Linux之kill命令

    Linux之kill命令Linux 常用命令速查手册 关注 入门小站 后台回复 1001 自取 Linux 中的 kill 命令用来终止指定的进程 terminateapr 的运行 是 Linux 下进程管理的常用命令 通常 终止一个前台进程可以使用 Ctrl C 键 但是 对于一个后台进程就须用 kill 命令来终止 我们就需要先使用 ps pidof pstree top 等工具获取进程 PID 然后使用 kill 命令来杀掉该进程 kill 命令是通过向进程发送指定的信号来结束相应进程的 在默认情况下 采用编号为 15 的 TERM

    2026年3月18日
    2
  • js弹出框、对话框、提示框、弹窗总结[通俗易懂]

    js弹出框、对话框、提示框、弹窗总结[通俗易懂]js弹出框、对话框、提示框、弹窗总结一、JS的三种最常见的对话框[javascript] viewplaincopy//====================== JS最常用三种弹出对话框 ========================        //弹出对话框并输出一段提示信息      funct

    2025年6月30日
    6
  • anaconda集成环境下,用pycharm运行代码不显示任何结果也不报错的一系列问题

    anaconda集成环境下,用pycharm运行代码不显示任何结果也不报错的一系列问题卸载 anaconda 和 pycharm 后 如果 C Users Username anaconda3 文件夹还在 就把它删了 然后打开注册表编辑器 运行 Regedit 计算机 HKEY CURRENT USER SOFTWARE Python 把这个文件夹删除 重启电脑 先安装 anaconda 再安装 pycharm Pycharm 打开要运行的项目 如果提示在程序目录找不到 import 的包 就在项目里重新添加包

    2026年3月27日
    1
  • USB转232和485的区别

    1串口串口,即串行通信接口,与之相对应的另一种接口叫并口,并行接口。两者的区别是,传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输,而并口则将8个位一字排开,分别在8条连接线上同时传输,也就是进行数据传输的接口串口是一种物理接口形式,(硬件)通常指COM接口,当然这些接口有着很多标准接口标准:串口通信的接口标准有很多,而我们所了解的RS-23…

    2022年4月7日
    82
  • 各种加解密算法比較

    各种加解密算法比較

    2021年12月5日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号