当前位置: 首页 > news >正文

哪个网站做任务赚钱多百度旧版本下载

哪个网站做任务赚钱多,百度旧版本下载,ftp修改wordpress密码,网页设计代码单元格内容怎么居中什么是反射 相对官方解释 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力; 在运行时期,动态地去获取类中的信息(类的信息,方法信息,构造器信息,字段等信息); 在运行的时候获取到的类信息 封装一个字节码对象…

什么是反射

相对官方解释

  1. 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力;

  2. 在运行时期,动态地去获取类中的信息(类的信息,方法信息,构造器信息,字段等信息); 在运行的时候获取到的类信息 封装一个字节码对象

反射功能

由于后续均会以代码演示,故此处先行写出后续要用的User类

public class User {private String name;private String password;public User(String name,String password){this.name=name;this.password=password;}public User(){}private User(String name){}public String getName() {return name;}private  void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}private void test(String s){System.out.println("这是私有的测试方法,外人无法访问");}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", password='" + password + '\'' +'}';}
}

获取构造方法

public class MyTest {public static void main(String[] args) throws Exception {
//        System.out.println(User.class);
//        User user=new User();
//        System.out.println(user.getClass());Class<?> a=Class.forName("com.WEB.Reflect._02Reflect.User");System.out.println(a);//假定一个非自身类//因为私有属性爆红
//        Shoe.class;
//        new Shoe().getClass();
//        System.out.println("com.WEB.Reflect._02Reflect.Shoe");//获取a当中所有的共有构造Constructor<?> [] constructors=a.getConstructors();//获取所有共有构造System.out.println(constructors);// 获取所有声明了的构造Constructor<?>[] constructors=a.getDeclaredConstructors();//获取所有声明了的构造,私有公有都会出现for (Constructor<?> constructor:constructors){System.out.println(constructor);}}
}

上述的getConstructors()只能获取公共构造,即被public修饰的构造;而getDeclaredConstructors()能够获取所有被声明的构造,即无论公共还是私有,都能够被获取。

让访问权限失效

public class MyTest {public static void main(String[] args) throws Exception {
//        System.out.println(User.class);
//        User user=new User();
//        System.out.println(user.getClass());Class<?> a=Class.forName("com.WEB.Reflect._02Reflect.User");System.out.println(a);//假定一个非自身类//因为私有属性爆红
//        Shoe.class;
//        new Shoe().getClass();
//        System.out.println("com.WEB.Reflect._02Reflect.Shoe");//获取a当中所有的共有构造Constructor<?> [] constructors=a.getConstructors();//获取所有共有构造System.out.println(constructors);// 获取所有声明了的构造
//        Constructor<?>[] constructors=a.getDeclaredConstructors();//获取所有声明了的构造,私有公有都会出现
//        for (Constructor<?> constructor:constructors){
//            System.out.println(constructor);
//        }Constructor<?> constructor = a.getConstructor(String.class, String.class);Object o = constructor.newInstance("Lily", "123456");Constructor<?>[] constructor1=a.getDeclaredConstructor(String.class);constructor.setAccessible(true);//破坏访问权限System.out.println(constructor1.newInstance("123"));}
}

重要语句就是constructor.setAccessible(true);设置为true,即可破解访问权限,无论公有还是私有方法均可用。

获得方法

public class MyTest {public static void main(String[] args) throws Exception {
//        System.out.println(User.class);
//        User user=new User();
//        System.out.println(user.getClass());Class<?> a=Class.forName("com.WEB.Reflect._02Reflect.User");System.out.println(a);//假定一个非自身类//因为私有属性爆红
//        Shoe.class;
//        new Shoe().getClass();
//        System.out.println("com.WEB.Reflect._02Reflect.Shoe");//获取a当中所有的共有构造Constructor<?> [] constructors=a.getConstructors();//获取所有共有构造System.out.println(constructors);// 获取所有声明了的构造
//        Constructor<?>[] constructors=a.getDeclaredConstructors();//获取所有声明了的构造,私有公有都会出现
//        for (Constructor<?> constructor:constructors){
//            System.out.println(constructor);
//        }Constructor<?> constructor = a.getConstructor(String.class, String.class);Object o = constructor.newInstance("Lily", "123456");
//        Constructor<?>[] constructor1=a.getDeclaredConstructor(String.class);
//        constructor.setAccessible(true);//破坏访问权限
//        System.out.println(constructor1.newInstance("123"));//获取方法Method[] methods =a.getMethods();//获取所有共有方法for (Method method:methods){System.out.println(method);}Method[] methods1=a.getDeclaredMethods();//获取所有方法包括私有for (Method method:methods1){System.out.println(method);}Method method=a.getDeclaredMethod("test", String.class);method.setAccessible(true);//用反射调用方法method.invoke(o,"hello");}
}

同样此处也是通过getMethods()与getDeclaredMethods()

获取字段

public class MyTest {public static void main(String[] args) throws Exception {
//        System.out.println(User.class);
//        User user=new User();
//        System.out.println(user.getClass());Class<?> a=Class.forName("com.WEB.Reflect._02Reflect.User");System.out.println(a);//假定一个非自身类//因为私有属性爆红
//        Shoe.class;
//        new Shoe().getClass();
//        System.out.println("com.WEB.Reflect._02Reflect.Shoe");//获取a当中所有的共有构造Constructor<?> [] constructors=a.getConstructors();//获取所有共有构造System.out.println(constructors);// 获取所有声明了的构造
//        Constructor<?>[] constructors=a.getDeclaredConstructors();//获取所有声明了的构造,私有公有都会出现
//        for (Constructor<?> constructor:constructors){
//            System.out.println(constructor);
//        }Constructor<?> constructor = a.getConstructor(String.class, String.class);Object o = constructor.newInstance("Lily", "123456");
//        Constructor<?>[] constructor1=a.getDeclaredConstructor(String.class);
//        constructor.setAccessible(true);//破坏访问权限
//        System.out.println(constructor1.newInstance("123"));//获取方法Method[] methods =a.getMethods();//获取所有共有方法for (Method method:methods){System.out.println(method);}Method[] methods1=a.getDeclaredMethods();//获取所有方法包括私有for (Method method:methods1){System.out.println(method);}Method method=a.getDeclaredMethod("test", String.class);method.setAccessible(true);//用反射调用方法method.invoke(o,"hello");//获取属性
//        Field[] fields=a.getDeclaredFields();
//        for (Field field:fields){
//            System.out.println(field);
//        }Field field=a.getDeclaredField("name");field.setAccessible(true);field.set(o,"123");System.out.println(field.get(o));}
}

同样此处也是通过getField()与getDeclaredFields()来获取共有和所有字段。

写在最后:反射是JAVA中很重要的一个机制,后期的SpringBoot,Mybatis均都是用到了反射。笔者小,中,大厂面试均有面试经历,坚持每日分享JAVA全栈知识,希望和大家共同进步。

http://www.hengruixuexiao.com/news/13768.html

相关文章:

  • 网易企业邮箱怎么样优化方案官网电子版
  • 郑州东区网站建设扬州网络优化推广
  • 课程网站建设特色上海aso苹果关键词优化
  • 哪些网站是做外贸生意的浏览器地址栏怎么打开
  • 深圳模板网站多少钱aso优化推广
  • 长沙网站建计优化网站标题名词解释
  • 建设政府网站申请seo优化裤子关键词
  • 无锡做网站公司哪家比较好seo竞价培训
  • 建设网站如何写文案陕西seo关键词优化外包
  • 杭州住房和城乡建设局网站网站的友情链接是什么意思
  • 苏州建网站的公司一站式服务公司天津外贸seo推广
  • 博罗网站建设公司网络营销的目标
  • 网站中的搜索框怎么做搜索引擎优化的实验结果分析
  • 互联网公司网站源码福州网站优化
  • 怎么制作弹幕网站品牌运营管理有限公司
  • 收费报名网站怎么做什么是搜索引擎优化
  • 带做网站价位seo网站推广软件
  • 怎么做同学录的网站小红书关键词排名怎么做
  • 全国建设项目公示平台爱采购seo
  • 长沙做网站网站快速被百度收录
  • 百度网站入口黑科技引流工具
  • 焦作企业网站建设seo推广一个月见效
  • 一些常用的网站上海网站搜索引擎优化
  • 如何创建网站平台推广公众号的9种方法
  • 北京公司网站开发搜索引擎排名优化方案
  • 自然景观网站模板专业代写文案的公司
  • 上饶建站公司中国四大软件外包公司
  • 沈阳网站建设bwspire如何推广自己的产品
  • 学软件开发好还是网站开发好外贸如何推广
  • wordpress网站首页推广下载app拿佣金