JAVA基础 注解、正则和xml

JAVA基础 注解、正则和xml

注解

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

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

注解的分类

内置注解

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

自定义注解

内置注解

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

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

自定义注解(了解)

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

反射操作注解

public class AnnoDemo05 {
    public static void main(String[] args) throws Exception {
        //反射操作注解
        Class<AnnoDemo04> cls = AnnoDemo04.class;
        Method method = cls.getDeclaredMethod("test",int.class);
        System.out.println(method);

        //boolean isAnnotationPresent​(类<? extends Annotation> annotationClass) 如果此元素上 存在指定类型的注释,则返回true,否则返回false。
        System.out.println(method.isAnnotationPresent(Param.class));

        if(method.isAnnotationPresent(Param.class)){
            //获取指定注解类型的实例
            /*
            A getAnnotation(类<A> annotationClass) 返回该元素的,如果这样的注释 ,否则返回null指定类型的注释。
            Annotation[] getAnnotations() 返回此元素上 存在的注释。
             */
            Param p = method.getAnnotation(Param.class);
            System.out.println(p.value());
            System.out.println(p.str());

            System.out.println(Arrays.toString(method.getAnnotations()));;
        }
    }
}

正则

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

String 中使用正则
    split("正则语法")  分隔
    replaceAll("正则","新串")  替换
    matches("正则") 完整匹配
Pattern 模式器表示正则的实例
Macher 匹配器用来与指定字符串 做匹配
    find() 查找子串->从前到后
    matches() 完整匹配
    group()|group(0) 满足条件得完整子串
    group(int) 当前符合的子串中指定分组的内容
    groupCount 分组个数

XML

xml解析
1.构建SaxReader对象
2.读取加载xml文件
3.获取Document
4.遍历

public static void main(String[] args) throws Exception {
        //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());
            }
        });

    }

删除元素 : 父元素.remove(子元素)
修改元素的内容
修饰属性值 属性.setValue(“值”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值