读取文件并将方法行存储在字符串数组中

时间:2014-04-05 10:14:56

标签: java loops arraylist arrays

我有一个java文件' Arithmetic.java',其中我有2个重写方法。

现在我想阅读这个文件,我需要打印所有方法签名行,并且必须将所有值放在一个数组中。

如果我找到相同的签名,那么我必须打印重写的方法找到。一旦我找到重写的方法,我必须将方法名称后缀为methodName_overridden1,methodName_overridden2等等......

直到现在我能够阅读这些行,能够读取方法名称。但是在将整个方法签名放入数组和后缀部分时,我无法继续。

请注意注释行//查找方法名称,方法返回类型

可能是我使用错误的方式。

任何帮助都很明显

我的代码在这里:

                //Finds Method Name, Method Return Type

                if(indexOfMethod >-1 && indexOfOpenBrace >-1){

                    //Finds Method signature Start

                    System.out.println("Print method line="+line.trim());
                    int methodLength=methodSignatures.length;

                    List<String> myList= new ArrayList<String>();

                    myList.add(line);
                    for (int i = 0; i < methodLength; i++) {
                        while(! (methodSignatures[i].equals(myList)))
                        {
                            methodSignatures[i]=methodName+"Override_1";
                        }
                        System.out.println("Signature:"+methodSignatures[i]);
                    }

                    //Finds Method signature End

                    String modified = line.substring(indexOfMethod, indexOfOpenBrace);
                    System.out.println("modified: "+modified);
                    String st[] = modified.split(" ");
                    methodName = st[st.length-1];
                    methodReturn=st[st.length-2];
                    System.out.println("methodName="+methodName);
                    System.out.println("methodReturn="+methodReturn);

                    //Get Method Parameter Types

                    paramLists=line.substring(indexOfOpenBrace+1, indexOfCloseBrace);
                    //System.out.println("Present Method Params are: " + paramLists);
                    methodParams=paramLists.split(",");
                    for (int i =0; i < methodParams.length ; i++){
                        methodParams[i]=methodParams[i].trim();
                        methodParams[i] = methodParams[i].substring(0, methodParams[i].indexOf(" "));
                        System.out.println("Splitted Method Parameter Types:" +methodParams[i]+":");
                    }
                }

                //Finds Project Code

                if(line.contains(this.projectCode)){
                    System.out.println("Found Fix as:"+line);
                    if(classFound){
                        // create FixDetails object.
                        fixDetails = new FixDetails(packageName, className, methodName);

                        // sets all required params.
                        fixDetails.setmParams(methodParams);
                        fixDetails.setmReturnType(methodReturn);
                        fixDetails.setParamLists(paramLists);

                        //System.out.println("fixDetails in JAGTool: " + fixDetails);
                        testCaseGenerator.generateTest(fixDetails);

                    }
                    else{
                        System.out.println("Class not found yet. Probably import statement");
                    }        
                }

            }//End Of While

提前致谢

0 个答案:

没有答案