1. 概述

  1. 学习 Java 反射的时候, 碰到的简单问题
  2. 手动可以处理, 但是真的很浪费时间
  3. 想熟悉一下工具的使用

2. 题目

  1. Modifier.isAbstract(int modifiers);
    Modifier.isFinal(int modifiers);
    Modifier.isInterface(int modifiers);
    Modifier.isNative(int modifiers);
    Modifier.isPrivate(int modifiers);
    Modifier.isProtected(int modifiers);
    Modifier.isPublic(int modifiers);
    Modifier.isStatic(int modifiers);
    Modifier.isStrict(int modifiers);
    Modifier.isSynchronized(int modifiers);
    Modifier.isTransient(int modifiers);
    Modifier.isVolatile(int modifiers);
  2. 目的

    System.out.println("is abstract? " + Modifier.isAbstract(modifiers));
    System.out.println("is final? " + Modifier.isFinal(modifiers));
    System.out.println("is interface? " + Modifier.isInterface(modifiers));
    System.out.println("is native? " + Modifier.isNative(modifiers));
    System.out.println("is private? " + Modifier.isPrivate(modifiers));
    System.out.println("is protected? " + Modifier.isProtected(modifiers));
    System.out.println("is public? " + Modifier.isPublic(modifiers));
    System.out.println("is static? " + Modifier.isStatic(modifiers));
    System.out.println("is strict? " + Modifier.isStrict(modifiers));
    System.out.println("is synchronized? " + Modifier.isSynchronized(modifiers));
    System.out.println("is transient? " + Modifier.isTransient(modifiers));
    System.out.println("is volatile? " + Modifier.isVolatile(modifiers));

3. 思路

  1. 手打
  2. vim 替换

4. 解决

  1. 概述

    1. 手打的思路, 暂时就不考虑了

1. 思路1

  1. 概述

    1. 第一个思路
  2. 思路

    1. Modifier.isAbstract(int modifiers);
    2. System.out.println("is ? " + Modifier.isAbstract(modifiers));
    3. 手打加上核心关键词
  3. tip

    1. ex 表达式
  4. 步骤

    1. :1,$ s/Modi/System.out.println("is ? " + /
    2. :1, $ s/;/);/
    3. 手工补充上关键词
  5. 问题

    1. 步骤 1 和 2 能否合并
    2. 手工替换关键词, 是不是有点 low

2. 思路2

  1. 概述

    1. 尝试将 思路1 的 1, 2 步骤合而为1
  2. 步骤

    1. :%s/^\(.*\);/System.out.println("is ?" + \1);/
    2. 手动添加 关键词
  3. 问题

    1. 合并完成了

      1. 使用了 ex 的 保留缓冲区
    2. 手工替换, 还是有点 low

3. 思路3

  1. 概述

    1. 尝试一个语句, 直接替换完成
  2. 步骤

    1. :%s/\(M.*is\)\(.*\)\((.*)\);/System.out.println("is \2?" + \1\2\3);
    2. 手动调整 关键字 的大小写
  3. 问题

    1. 解决了关键字的填写问题
    2. 大小写问题, 暂时没有解决

4. 思路4

  1. 概述

    1. 改进 大小写
  2. 步骤

    1. 思路3
    2. :%s/is \(.*\)?/is \l\1?/

5. 其他

  1. 问题

    1. 本质是一个列的变换

      1. 变换只需要依赖自身即可
      2. 这里确实说的有点不清楚
    2. 另一个例子

      a
      b
      c windows
      linux
      others
      1. 目的
      a. windows
      b. linux
      c. others
  2. vim - ex, 算是个比较有用的东西, 值得学习一下

    1. ex 基本操作
    2. ex 多标签
    3. ex 全局搜索
    4. ex 脚本
  3. 后续思路

    1. sed
    2. awk
    3. 某些 模板 也可做到同样的功能
    4. 技能熟练度, 也是个大问题

最新文章

  1. 1.Linux常用命令
  2. 奇葩问题之ToolBar返回键失效
  3. unity3d 赛车游戏——复位点检测
  4. 第二章 Js函数
  5. tar命令: 对某目录文件打tar包时,排除指定的目录或文件
  6. jquery datepicker日期控件用法
  7. 【微信公众号】WeixinJSBridge.call('closeWindow')无效
  8. 2017年最重要的HTML5开发手册,传播正能量
  9. 使用setTimeout实现setInterval
  10. Ubuntu 自动选择最快的镜像源
  11. MySQL优化(2)--------常用优化
  12. 第一部分之简单字符串SDS(第二章)
  13. charles License
  14. coursera-斯坦福-机器学习-吴恩达-笔记week4
  15. Java中加密算法介绍及其实现
  16. nginx负载均衡二:配置
  17. collectd 检测cpu使用率
  18. 启明星会议室系统与Office365集成说明
  19. 数据库初始化以及制作为Windows服务
  20. Java 实例 - 队列(Queue)用法

热门文章

  1. "换行"和"回车"的来历
  2. 502. IPO(最小堆+最大堆法 or 排序法)
  3. 324. 摆动排序 II(三路划分算法)
  4. 虚拟磁盘VHD文件压缩方法
  5. Goland安装与配置
  6. Win10镜像升级到其他版本
  7. 初步自学Java小结
  8. 2018-2019 ACM-ICPC, Asia East Continent Final L Eventual … Journey
  9. Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) B Box
  10. 【Python】字符串操作符