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

seo短视频网页入口引流网站那些域名可以做后缀做网站

seo短视频网页入口引流网站,那些域名可以做后缀做网站,深圳网站建设定制开发超凡科技,网络营销的定价策略6个文章目录 1. 反射1-1. 获取Class对象的三种方式1-2. 获取类的构造器、实例化对象1-3. 获取类的成员变量1-4. 获取类的成员方法 2. 注解2-1. 元注解2-2. 解析注解 1. 反射 反射:加载类,并允许以编程的方式解剖类中的各种成员变量、方法、构造器。 1-1. …

文章目录

  • 1. 反射
    • 1-1. 获取Class对象的三种方式
    • 1-2. 获取类的构造器、实例化对象
    • 1-3. 获取类的成员变量
    • 1-4. 获取类的成员方法
  • 2. 注解
    • 2-1. 元注解
    • 2-2. 解析注解

1. 反射

反射:加载类,并允许以编程的方式解剖类中的各种成员变量、方法、构造器。

1-1. 获取Class对象的三种方式

  1. Class c = 类名.class
  2. 调用Class提供方法:forName(String package),需要提供Java类的文件路径
  3. Object提供的方法:Class c = 对象.getClass()
package Java_fs;class User{}public class JavaFs1 {public static void main(String[] args) throws ClassNotFoundException {Class c = User.class;System.out.println(c.getName());System.out.println(c.getSimpleName());System.out.println("**************************");Class c1 = Class.forName("Java_fs.User");System.out.println(c1 == c);System.out.println("**************************");User user = new User();Class c2 = user.getClass();System.out.println(c2 == c);}
}

在这里插入图片描述

1-2. 获取类的构造器、实例化对象

推荐使用类对象.getDeclaredXXX这种方式来获取,这样可以获取所有的构造器,而不是仅仅得到被public修饰的构造器。
在这里插入图片描述

package Java_fs;import java.lang.reflect.Constructor;class User2{private String name;private Integer age;public User2() {}private User2(String name){this.name = name;}public User2(String name, Integer age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "User2{" +"name='" + name + '\'' +", age=" + age +'}';}
}public class JavaFs2 {public static void main(String[] args) throws NoSuchMethodException {Class c1 = User2.class;System.out.println("获取被public修饰的构造器");Constructor[] constructors = c1.getConstructors();// 只能获取被public修饰的构造器for (Constructor constructor : constructors) {System.out.println("构造器名为:"+constructor.getName());// 获取构造器的名称System.out.println("参数个数为:"+constructor.getParameterCount());// 构造器的参数个数}System.out.println("获取所有的构造器");// 获取所有的构造器Constructor[] constructors2 = c1.getDeclaredConstructors();// 只能获取被public修饰的构造器for (Constructor constructor : constructors2) {System.out.println("构造器名为:"+constructor.getName());// 获取构造器的名称System.out.println("参数个数为:"+constructor.getParameterCount());// 构造器的参数个数}System.out.println("获取指定的构造器。。。。有参数的");Constructor constructor = c1.getDeclaredConstructor(String.class,Integer.class);System.out.println("构造器名为:"+constructor.getName()+"参数个数为:"+constructor.getParameterCount());}
}

在这里插入图片描述
如果想通过这个构造器对象进行实例化,可以直接.newInstance(参数)即可,但是需要某个构造器是私有的,那还是会报错,如下:

package Java_fs;import java.lang.reflect.Constructor;class User2{private String name;private Integer age;public User2() {}private User2(String name){this.name = name;}public User2(String name, Integer age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "User2{" +"name='" + name + '\'' +", age=" + age +'}';}
}public class JavaFs2 {public static void main(String[] args) throws Exception{Class c1 = User2.class;System.out.println("获取指定的构造器。。。。有参数的");Constructor constructor = c1.getDeclaredConstructor(String.class,Integer.class);System.out.println("构造器名为:"+constructor.getName()+"参数个数为:"+constructor.getParameterCount());User2 user = (User2) constructor.newInstance("张三", 20);System.out.println(user);Constructor constructor1 = c1.getDeclaredConstructor(String.class);// constructor1.setAccessible(true);// 禁止检查访问权限User2 user2 = (User2) constructor1.newInstance("张三");System.out.println(user2);}
}

在这里插入图片描述
在这里插入图片描述
这是因为这个一个参数的构造器是被private修饰的,此时如果想强行获取到,可以在构造器下方设置权限,如下::
在这里插入图片描述

1-3. 获取类的成员变量

推荐使用getDeclaredField这种方式来获取,这样所有的都可以获取到。
在这里插入图片描述

package Java_fs;import java.lang.reflect.Constructor;
import java.lang.reflect.Field;class User2{private static int a;private static final String COUNTRY = "China";private String name;public Integer age;@Overridepublic String toString() {return "User2{" +"name='" + name + '\'' +", age=" + age +'}';}
}public class JavaFs2 {public static void main(String[] args) throws Exception{Class c1 = User2.class;Field[] fields = c1.getDeclaredFields();for (Field field : fields) {System.out.println(field);}}
}

在这里插入图片描述
如果想获取指定的成员变量,只需要输入成员变量名即可。如果成员变量被private进行修饰,你想获取成员变量的值或者设置成员变量的值,那么需要设置禁止检查访问权限才行,否则会报错。

package Java_fs;import java.lang.reflect.Field;class User2{private static int a;private static final String COUNTRY = "China";private String name;public Integer age;@Overridepublic String toString() {return "User2{" +"name='" + name + '\'' +", age=" + age +'}';}
}public class JavaFs2 {public static void main(String[] args) throws Exception{Class c1 = User2.class;Field country = c1.getDeclaredField("COUNTRY");country.setAccessible(true);// 设置禁止检查权限User2 user = new User2();String country1 = (String) country.get(user);System.out.println(country1);// 获取成员变量的值Field name = c1.getDeclaredField("name");name.setAccessible(true);name.set(user,"张三");System.out.println(user);}
}

在这里插入图片描述

1-4. 获取类的成员方法

推荐使用getDeclaredXXX这种方式来获取成员方法。
在这里插入图片描述
如果想执行方法对象对应的方法,需要方法对象.invoke(某对象,参数)即可执行对应类下的方法。

package Java_fs;import java.lang.reflect.Field;
import java.lang.reflect.Method;class User2{private static int a;private static final String COUNTRY = "China";private String name;public Integer age;public void setName(String name){this.name = name;}private void happy(String name){System.out.println(name+"哈哈");}private void eat(){System.out.println("吃饭。。");}@Overridepublic String toString() {return "User2{" +"name='" + name + '\'' +", age=" + age +'}';}
}public class JavaFs2 {public static void main(String[] args) throws Exception{Class c1 = User2.class;Method[] methods = c1.getDeclaredMethods();// 获取所有的成员方法for (Method method : methods) {System.out.println(method.getName());}User2 user2 = new User2();Method eat = c1.getDeclaredMethod("eat");eat.setAccessible(true);// 设置禁止检查访问权限eat.invoke(user2);// 运行eat方法Method happy = c1.getDeclaredMethod("happy",String.class);happy.setAccessible(true);// 设置禁止检查访问权限happy.invoke(user2,"张三");// 运行happy方法}
}

在这里插入图片描述

2. 注解

就是Java代码里的特殊标记,让其他程序根据注解信息来决定怎样执行该程序。注解本质是一个接口,Java中所有的注解都是继承Annotation接口的,@xxx注解(…)其实就是一个实现类,实现了该注解以及Annotation接口。

package zj;@interface ZJOne {int a();String b();boolean c() default true;
}
package zj;@ZJOne(a=12,b="23",c=false)
public class ZjStudy {@ZJOne(a=12,b="23")public void test(){}public static void main(String[] args) {}
}

2-1. 元注解

用于修饰注解的注解。有两个,分别为@Target、@Retention。其中@Target用于声明被修饰的注解只能在哪些位置上使用。
在这里插入图片描述
@Retention用于声明注解的保留周期
在这里插入图片描述

2-2. 解析注解

package zj;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target({ElementType.TYPE,ElementType.METHOD})
// 应用在类和方法上面
@Retention(RetentionPolicy.RUNTIME)
@interface ZJOne {int a();String b();boolean c() default true;
}
package zj;import java.lang.annotation.Annotation;
import java.lang.reflect.Method;@ZJOne(a=12,b="23",c=false)
class Demo{@ZJOne(a=21,b="嘻嘻哈哈")public void print(){}
}public class ZjStudy {public static void main(String[] args) throws Exception {Class c = Demo.class;ZJOne zjOne = (ZJOne) c.getDeclaredAnnotation(ZJOne.class);System.out.println(zjOne.a());System.out.println(zjOne.b());System.out.println(zjOne.c());// 获取在类上的注解数据Method print = c.getDeclaredMethod("print");ZJOne zjOne1 = print.getDeclaredAnnotation(ZJOne.class);System.out.println(zjOne1.a());System.out.println(zjOne1.b());System.out.println(zjOne1.c());// 获取方法上注解数据}
}

在这里插入图片描述

http://www.yayakq.cn/news/941187/

相关文章:

  • 厦门 网站建设 网站开发重庆主城优化网站建设
  • 腾虎广州网站建设购物网站的建立
  • 合肥建设工会网站精准营销数据
  • 电子报 网站开发行业网站建设多少钱
  • 当今做那些网站能致富上海市建设安全协会网站查询系统瘫
  • 网站的建设与颜色搭配wordpress购买插件
  • 深圳全网营销网站建设中文wordpress实例
  • 做网站建设分哪些类型网站建设阿里巴巴
  • ftp工具下载网站源码教程刷关键词排名系统
  • 工信部网站域名查询WordPress 错误记录
  • 深圳网站设计开发校园app开发费用
  • 万网有域名怎么建网站基于ssh框架的网站开发流程
  • 苏州网站建设2万起58同城一样的网站怎样建设
  • 自己可以进行网站建设吗广州市财经商贸职业学校
  • 跳转网站代码个人网页制作成品代码五个页面
  • 自己做网站能挣钱吗网站如何在推广
  • 微信wap网站开发道路建设网站
  • 手机网站源码大全北京网站制作郑州
  • 做现货黄金看什么网站小型公司怎么注册
  • 小企业网站建设地点手机算命网站建设
  • 单页网站上传教程视频网站重新搭建程序要多少钱
  • 美橙互联网站建设案例淘宝官网首页入口手机
  • iis怎么创建网站横岗网站建设
  • 北京高端品牌网站建设找人做网站需要什么条件
  • 教做高级料理的网站建设工程服务中心是做什么的
  • 自适应模板网站郑州网络营销策划
  • 天津网站优化首页国外常用的seo站长工具
  • 网站内容好wordpress数据存储
  • 做评测系统网站首先要干嘛wordpress 个人中心
  • 做门户网站需要学什么软件58同城东莞招聘网最新招聘