这篇文章主要讲解了如何使用Java反射技术,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
产生反射技术的需求:
一个网站有计算器功能,刚开始他们只有加减乘除的计算,后来他们决定增加上求乘方、求根号的计算,他们通过“关停网站后修改源代码“来增加上他们需要的功能。第二次,他们加上xx功能,他们还是关停网站加功能。。。。后来他们发现应该把这个”功能模块“独立出来,任何功能实现都通过读取这个文件来实现,比如想要实现乘方功能就需要查看这个模块中是否定义了乘方功能。另外,将它独立出来后,它一个模块并不影响整个板块的功能。
【上面的例子中,其他板块如果想要知道独立的模块的内容(属性、方法),那么就要利用到反射技术,反射技术可以使程序在运行时解析外部对象的信息。】
PS:
如果你已经了解了 为什么需要反射,那么你可以继续向下了,如果不了解,那么你可能需要了解更多再深入。
getDeclaredConstructor(参数类型列表)
来获取构造方法。同样的,getDeclaredConstructors()
是获取所有不论public还是非public的构造方法。getMethod(方法名, 参数类型列表)
:获取public的指定名的方法getMethods()
:获取public的所有方法getDeclaredMethod(方法名, 参数类型列表)
:获取不论public还是非public的指定名的方法【用来获取私有的方法】
getDeclaredMethods()
:获取不论public还是非public的方法
然后使用Method对象操作:
非静态方法调用:Method对象.invoke(对象名,对象名…)
静态方法调用:Method对象.invoke(null)
看完上述内容,是不是对如何使用Java反射技术有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。