栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

反射相关知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

反射相关知识

1.反射机制“

反射是java的动态机制,可以允许我们在程序运行期间在确定实例化,调用某个方法,操作某个属性

反射机制大大提高了代码的灵活度,但是会有更高的系统开销和较慢的运行效率

2.获取类对象的三种方式。

1.Student s = new Student();

Class cls = s.getClass();

2.类名点class(基本类型获取类对象只有这一种方式)

Class cls = String.class

3.Class cls = Class.forName("包名.类名");

3.类对象的相关方法

1.String name = cls.getName():获取类对象表示的类的完全限定名

2.String name = cls.getSimpleName();获取类名

3.Package pack = cls.getPackage();获取类对象所表示的的包

4.pack.getName();获取包名

5.Method[] methods = cls.getMethods(); 获取类对象所表示的类中定义的所有公开方法,包含超类继承下来的方法。

6.利用反射机制实例化对象

Class cls = Class.forName("包名.类名");

Object obj = cls.newInstance();

7.使用有参构造器进行实例化。

Class cls = Class.forName("包名.类名");

Constructor c = cls.getConstructor(String.class , int.class);

Object obj = c.newInstance("王五",20);

8.Method method = cls.getMethod(methodName);

method.invoke(obj);通过类对象获取需要调用的方发

9.调用有参方法。

Class cls = Class.forName(" ");

Object obj = cls.newInstance();

Method method = cls.getMethod("方法名",参数);

method.invoke(obj,具体的值);

10.Method[] method = cls.getDeclareMethod();获取当前类自身定义的方法,包含私有方法。

11.Method method = cls.getDeclaredMethod(方法名);

method.setAccessible(teue);强行打开私有方法的访问权限。

12.method.getParameterCount()==0判断该方法参数是否为零

13.method.getModifiers() == Modifier.PUBLIC 判断该方法的访问修饰符是否无PUBLic

14.cls.isAnnotattionPresent(注解.class)判断该类对象所表示的类是否被注解标注

4.main方法上的参数String[] args的作用是:

在命令行上使用java命令指定当前类时,可以传递参数进来,此时会被main上的String[] args接收。

5.开发中常用的相对路径。

File dir = new File(当前类名.class.getClassLodaer().getResource(".").toURI());这个类最外层包的上一级目录。

File dir =new File(当前类名.class.getResouerce(".").toURI());这个目录就是当前类所在的目录。

5.注解可以设置被应用位置。

@Target({ElementType.TYPE,ElementType.METHOD}):说明注解只能被用于类或方法上

@Retention注解,用于标注当前注解的保留级别,有三个选项。

RetentionPolicy.SOURCE 注解仅保留在源代码中

RetentionPolicy.CLASS 注解保留在字节码中,但是反射机制不能调用

RetentionPolicy.RUNTIME 注解保留在字节码文件中,并且可以被反射机制所使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号