反射相关知识

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 注解保留在字节码文件中,并且可以被反射机制所使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值