专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

mysql 多列子查询,java的反射到底是有什么用处_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 19:56:00       共计:3578 浏览
mysql 多列子查询,java的反射到底是有什么用处?

谢邀。在Java中,反射是一种API,用于在运行时检查或修改方法、类、接口的行为。

反射所需的类在java.lang.reflect包下提供。反射为我们提供了有关对象所属类的信息,以及可以使用该对象执行的该类的方法。通过反射,我们可以在运行时调用方法,而与它们所使用的访问说明符无关。反射可用于获取有关一些的有用信息类 getClass()方法用于获取对象所属的类的名称。构造函数 getConstructors()方法用于获取对象所属类的公共构造函数。方法 getMethods()方法用于获取对象所属类的公共方法。简单的例子

为了先清楚下反射的用处,我们将看一个非常基本的示例,该示例在运行时检查简单Java对象的字段。

让我们创建一个简单的Person类,其中仅包含name和age字段,而根本不包含任何方法。这是Person类:

现在,我们将使用Java反射来发现此类所有字段的名称。为了欣赏反射的力量,我们将构造一个Person对象并将Object作为引用类型:

这个测试告诉我们,我们能够得到的数组Field对象从我们人的对象,即使参考对象是对象的父类。

在上面的示例中,我们仅对这些字段的名称感兴趣,但是还有很多事情可以做,我们将在后续部分中看到更多示例。

注意我们如何使用一个辅助方法来提取实际的字段名,这是一个非常基本的代码:

重点观察如果知道方法的名称和参数类型,则可以通过反射调用该方法。为此,我们使用以下两种方法getDeclaredMethod():创建要调用的方法的对象。该方法的语法是Class.getDeclaredMethod(名称,参数类型)name-要创建其对象的方法的名称parametertype-参数是Class对象的数组

invoke():要在运行时调用类的方法,我们使用以下方法——

Method.invoke(对象,参数)如果类的方法不接受任何方法 参数,然后将null用作参数。通过反射,我们可以在类的类对象的帮助下访问类的私有变量和方法,并通过使用对象来调用方法,如上所述。为此,我们使用以下两种方法。

Class.getDeclaredField(FieldName):用于获取私有字段。返回指定类型字段名称的字段类型的对象。Field.setAccessible(true): 允许访问该字段,而与该字段使用的访问修饰符无关。

使用发射的优势可扩展性功能:应用程序可以通过使用其完全限定的名称创建可扩展性对象的实例来使用外部的用户定义类。调试和测试工具:调试器使用反射的属性检查类的私有成员。缺点性能开销:反射操作比非反射操作的性能要慢,因此应避免在对性能敏感的应用程序中经常调用的代码段中避免这样做。内部曝光:反射代码破坏了抽象,因此可能会随着平台升级而改变行为。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:mysql 查询所有下级,java程序员如何提升自己_数据库 | ·下一条:mysql 表无法查询,mysql_数据库

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有