JAVA基础知识点22-反射、注解、正则表达式、xml

本文深入探讨了Java编程中的反射机制,包括获取类的字段、方法及调用,注解的应用场景和类型,以及自定义注解的规则。同时,介绍了正则表达式的功能,如字符串的分隔、替换和匹配,并通过示例展示了其实现。此外,还提及了XML解析的基本步骤。
摘要由CSDN通过智能技术生成

反射:

反射操作方法
反射操作属性
    字段 getField(String name) 返回 字段对象,该对象反映此 类对象表示的类或接口的指定公共成员字段。
    字段[] getFields() 返回一个包含 字段对象的数组, 字段对象反映此 类对象所表示的类或接口的所有可访问公共字段。
    字段 getDeclaredField(String name) 返回 字段对象,该对象反映此 类对象表示的类或接口的指定声明字段。
    字段[] getDeclaredFields() 返回 字段对象的数组, 字段对象反映由此 类对象表示的类或接口声明的所有字段。

    Object get(Object obj) 返回指定对象上此 字段表示的字段的值。
    void set(Object obj, Object value) 将指定对象参数上此 字段对象表示的字段设置为指定的新值。

注解: 

注解:
    1) 为程序提供一些解释,标识,标志,检查..
    2) 提供参数的配置,供程序使用
    3) 可以用来代替配置文件的使用

定义: @注解名(参数)
位置: 根据需求定义(类,方法,属性,参数...)

注解的分类:
    内置注解
        按照参数个数分类:
            标记注解:没有参数
            单值注解:只有一个参数
            完整注解:多个参数

    自定义注解

    内置注解:
        @Override 标识检查方法是否为重写方法
        @Deprecated 标记已经过时,使用的时候回提示
        @SuppressWarnings  抑制警告

    元注解: 注解注解的注解
        @Target() 定义注解使用的位置
        @Retention() 注解的声明周期
        @Documented  表示使用该注解的元素应被javadoc或类似工具文档化
        @Inherited 标识能被子类继承的注解
自定义注解类:  @interface

1.隐式的实现类 java.lang.Annotation接口
2.自定义的注解类不要显示继承其他父类|实现其他接口
3.如果使用注解传递参数时候,参数类型为数组类型,1个参数直接赋值,多个参数放在一对{}中
4.注解类中属性的设置修饰符只能为public|default
5.注解类中的属性在后面添加一对()
6.属性的数据类型: 基本数据类型 String 枚举  Annotation 或者以上类型的数组
7.如果定义一个注解类时候存在属性|字段,使用的时候必须传递实参
8.如果注解类中只存在一个属性,并且属性的名字为value,可以在使用的时候直接赋值->推荐
9.属性可以设置默认值 default

正则表达式: 

正则 表达式: 具有特殊规则的特殊字符串  (了解!!!)
作用:  验证、查找、替换、分割

String 中使用正则
    split("正则语法")  分隔
    replaceAll("正则","新串")  替换
    matches("正则") 完整匹配
Pattern 模式器表示正则的实例
Macher 匹配器用来与指定字符串 做匹配
    find() 查找子串->从前到后
    matches() 完整匹配
    group()|group(0) 满足条件得完整子串
    group(int) 当前符合的子串中指定分组的内容
    groupCount 分组个数
public class Demo {
    public static void main(String[] args) {
        String str = "hdkj1ldjfl2jjf3jldsjfl4ljdf";
        //分隔
        String[] arr = str.split("\\d");
        for (String s : arr) {
            System.out.println(s);
        }

        //替换
        System.out.println(str.replaceAll("\\d","_"));
        System.out.println(str);

        //匹配 完整匹配
        String str2 = "haha123hehe";
        System.out.println(str2.matches("haha\\d{3}"));;

        //模式器Pattern
        Pattern p = Pattern.compile("a*b");
        //[匹配器Matcher
        Matcher m = p.matcher("123aaaaab");
        //完整匹配
        boolean b = m.matches();
        System.out.println(b);

        String s = "haha123hehe456haha789";
        Pattern pattern = Pattern.compile("(haha|hehe)(\\d{3})");
        Matcher matcher = pattern.matcher(s);

        System.out.println("-----------------");

        //find() 从前往后一次查找满足正则语法的子串
        /*System.out.println(matcher.find());
        System.out.println(matcher.find());
        System.out.println(matcher.find());
        System.out.println(matcher.find());
        System.out.println(matcher.find());
        System.out.println(matcher.find());*/

        while(matcher.find()){
            System.out.println(matcher.groupCount());       //组的个数
            System.out.println("满足条件的子串="+matcher.group()+"-->"+matcher.group(0));;
            System.out.println(matcher.group(1)+"-->"+matcher.group(2));;
        }
    }
}

 xml:

xml解析
    1.构建SaxReader对象
    2.读取加载xml文件
    3.获取Document
    4.遍历
//1.构建SaxReader对象
        SAXReader reader = new SAXReader();
        //2.读取加载xml文件
        //3.获取Document
        Document document = reader.read(new File("src/persons.xml"));
        //4.遍历
        Element root = document.getRootElement();

        //获取所有子节点
        List<Element> ls = root.elements();

        ls.forEach((e)->{
            System.out.println(e.getName());
            //通过迭代器遍历
            Iterator<Element> it =  e.elementIterator();
            while(it.hasNext()){
                Element ele = it.next();
                System.out.println(ele.getName()+"-->"+ele.getText());
            }
        });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值