反射,顾名思义,是JAVA中的一个API(应用程序编程接口)功能,通过它可以全面检查类的运行时实例。它是 Java.lang.reflect 包的一部分。这个包必须在程序开始时导入,然后调用函数来理解“反射”的功能。任何阶级的行为都可以研究;可以在运行时使用反射 API 提取或修改元数据。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
反射API下提取类信息的常用函数语法如下:
反射类使用Java.lang.reflect包中定义的不同方法来提取类信息。可以使用 getClass() 方法提取有关类的信息,使用 getConstructors() 方法提取构造函数,使用 getMethods() 方法提取方法信息。这些方法在反射 API 中定义,但返回类的信息,包括方法、构造函数等。反射API用于JAVA程序、IDE(集成开发环境),如eclipse、Netbeans。借助以下部分提供的示例可以很好地理解这一点。
下面提到了不同的示例:
代码:
//package test; import java.lang.Class; public class test{ public static void main(String args[]){ Class<Boolean> c1 = boolean.class; System.out.println("Here, the class name is: "+c1.getName()); Class<test> c2 = test.class; System.out.println("This is another instance of class is used to derive class name : "+c2.getName()); } }
输出:
说明:请检查上面提供的示例。它有一个包,其中包含所有名为“test”的类。测试包有一个“测试声明”类。该类还包含 main 方法,程序将从该方法开始执行。类“Class
在下一行中,不使用原始数据类型,而是考虑使用名为“test”的用户定义数据类型“class”来提取数据。 “类”是一个用名为“C2”的对象实例化的反射类。这里测试类名,并使用该对象使用函数“getName()”提取该类的名称。最终输出包含这些函数的返回值并显示在输出屏幕上。
代码:
//package test; import java.lang.Class; class Simple{} public class test{ public static void main(String args[]){ try{ Class<?> c=Class.<em>forName</em>("Simple"); System.<em>out</em>.println("The result is: "+c.isInterface()); }catch(Exception e){System.<em>out</em>.println(e);} } }
输出:
说明: 在上面的示例中,创建了一个名为“test”的包,如前面示例 1 中创建的那样。该包包含一个类名称“Simple”,它不是主类。这里的主类是“测试”类,它包含程序将从中开始执行的主方法。 “类>”是反射类的标识符,它是通过此处名为“c”的对象实例化的。然后,该对象用于提取名为“isInaterface”的函数的决策指示符(True 或 false)。该函数引入一个类作为参数;在这种情况下,作为参数引入的类是“Simple”类。此类不是接口,因此在输出屏幕中返回“false”作为结果。为了调用这个函数,使用了类对象“c”。
在JAVA中使用反射的一些优点如下:
JAVA反射使得在根本不知道类名的情况下内省类、接口、方法等成为可能。这一切都是在编译时完成的。这被认为是 JAVA 最强大的属性之一,因为它可以用来创建类的实例,并且可以使用它提取类的私有成员。开发人员也可以在运行时使用它并进行数据库对象映射。
以上是JAVA中的反射的详细内容。更多信息请关注PHP中文网其他相关文章!