package java9;

 import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.regex.Pattern; public class TTT { public static void main(String args[]) throws IOException { List<String> readAllLines = Files.readAllLines(Paths
.get("/Users/hongtaowang/git/spring-boot-jpa-demo/src/main/java/com/my/app/web/IndexController.java")); int issueLine = 29; String preMethodSignNumber = getPreMethodSignNumber(issueLine, readAllLines); System.out.println(preMethodSignNumber); String preSignEndChar = getPreSignEndChar(readAllLines, issueLine); System.out.println(preSignEndChar); } private static String getPreSignEndChar(List<String> readAllLines, int issueLine) {
int nextMethodSignLine = getNextMethodSignNumber(issueLine, readAllLines); for (int endLineNumber = nextMethodSignLine - 1; endLineNumber > 0; endLineNumber--) {
String endChar = readAllLines.get(endLineNumber - 1); if (endChar.contains("}")) {
return (endLineNumber) + " end line " + endChar;
} } return "";
} private static int getNextMethodSignNumber(int i, List<String> readAllLines) {
int j = i;
for (; j < readAllLines.size(); j++) {
String p = readAllLines.get(j - 1);
boolean extracted = matchMethodSign(p);
if (extracted) {
break;
} }
return j;
} private static String getPreMethodSignNumber(int currentLine, List<String> readAllLines) {
for (int preLine = currentLine - 1; preLine > 0; preLine--) {
String preLineSource = readAllLines.get(preLine - 1); if (matchMethodSign(preLineSource)) {
return (preLine) + " end line " + preLineSource;
} } return "";
} private static boolean matchMethodSign(String d) {
String pattern = ".*[A-z].* .*[A-z1-9]\\(.*";
boolean isMatch = Pattern.matches(pattern, d);
if (!isMatch) {
return false;
} if (d.contains("return")) {
return false;
} if (d.contains("=")) {
return false;
} return true;
} }

Find Method Sign Line Number的更多相关文章

  1. Eclipse "Unable to install breakpoint due to missing line number attributes..."

    Eclipse 无法找到 该 断点,原因是编译时,字节码改变了,导致eclipse无法读取对应的行了 1.ANT编译的class Eclipse不认,因为eclipse也会编译class.怎么让它们统 ...

  2. 无法debug断点跟踪JDK源代码——missing line number attributes的解决方法

    在项目工程->Properties->Java Build Path->Libraries中导入的JRE System Library库里,给jar包添加JDK源代码包后,能够直接打 ...

  3. IDEA Show Line Number

    刚开始用IDEA,经常发现右侧没有显示行号,然后去右键选一下,就显现了 一直没有留意这个现象,刚用vim想删几行数据代码,突然发现没有行号了 明明记得刚刚才右键显示了的 好吧,有行号用着比较顺心了.. ...

  4. Eclipse-debug时提示absent line number information的解决办法

    unable to install breakpoint in ...(file name) due to miss line number attributes. midify compliter ...

  5. Unable to perform unmarshalling at line number 16 and column 63 in RESOURCE hibernate.cfg.xml. Message: cvc-elt.1: 找不到元素 'hibernate-configuration' 的声明。

    七月 02, 2017 4:32:37 下午 org.hibernate.Version logVersionINFO: HHH000412: Hibernate Core {5.2.10.Final ...

  6. MyEclipse 断点打不上 提示 absent line number information

    在加入断点时,提示出 unable to install breakpoint in ...(file name) due to miss line number attributes. midify ...

  7. eclipse报错:unable to install breakpoint in .......due to missing line number attributes

    报错信息如下: 解决方案方案1.把断点都干掉,再启动.应该是代码更新后,断点位置没有代码了或位置改变了. 方案2.在Eclipse - Preferences - Java - Complier 下  ...

  8. gdb 调试 报 stepping until--- has no line number information

    gdb 经常用 ,但今天使用gdb 调试的时候, break 打断点, 结果也没有打出 哪一行的信息,就只是提示一个具体地址. 使用单步调试 结果爆出 stepping until exit from ...

  9. javax.script.ScriptException: ReferenceError: "window" is not defined in security.js at line number 10

    使用jmeter执行加密登录接口的测试遇到的问题. 问题记录: 今天使用jmeter执行加密登录接口的测试,因为测试环境的应用包是以前的老版本(可能有两年了),所以需要替换加密文件:security. ...

随机推荐

  1. hadoop--大数据生态圈中最基础、最重要的组件

    hadoop是什么? hadoop是一个由Apache基金会所开发的分布式系统基础架构,hdfs分布式文件存储.MapReduce并行计算.主要是用来解决海量数据的存储和海量数据的分析计算问题,这是狭 ...

  2. Java 通过Math.random() 生成6位随机数

    public static void main(String[] args) { String sjs=""; for (int i = 0; i < 6; i++) { i ...

  3. 十四,K8s集群网络flannel及canal策略

    目录 k8s网络CNI之flannel k8s网络通信模型 常见CNI插件(Container,Network,Interface) 插件通信一般的解决方案 网络插件的应用 Flannel插件 fla ...

  4. 简单了解Linux文件目录

    /bin :获得最小的系统可操作性所需要的命令 /boot :内核和加载内核所需的文件 /dev :终端.磁盘.调制解调器等的设备项 /etc :关键的启动文件和配置文件 /home :用户的主目录 ...

  5. 分布式之Zookeeper一(分布式锁与Zookeeper集群)

    说到分布式开发,不得不说的就是zookeeper了:zookeeper官网说到Apache ZooKeeper致力于开发和维护可实现高度可靠的分布式协调的开源服务器.那么zk作为一个协调者的存在,是分 ...

  6. debian docker环境搭建

    环境(阿里): 登陆到系统: 我们主要看执行结果截图(所有命令都进行复制) 卸载旧版本: 使用 APT 安装: 这里 输入 y  然后等待执行结束 添加软件源的 GPG 密钥. 一开始我是手打的命令, ...

  7. java8 stream/optional个人测试demo记录

    备忘记录 package cc.ash; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConst ...

  8. Javac可以编译,Java显示找不到或无法加载主类

    运行时候加入完整包名.

  9. 使用 Drag and Drop 给Web应用提升交互体验

    什么是 Drag and Drop (拖放)? 简单来说,HTML5 提供了 Drag and Drop API,允许用户用鼠标选中一个可拖动元素,移动鼠标拖放到一个可放置到元素的过程. 我相信每个人 ...

  10. hadoop中的JournalNode

    1.在HADOOP扮演的角色 JournalNode是在MR2也就是Yarn中新加的,journalNode的作用是存放EditLog的, 在MR1中editlog是和fsimage存放在一起的然后S ...