2016-05-23 53 views
-1

Project1有一個名爲TestInfoFinder一個Java類,它擴展的TestCase如下的另一種方法使用Java方法的返回列表作爲輸出:在另一個項目

public class TestInfoFinder extends TestCase { 

    private ClassFinder classFinderService = null; 

    public void setUp() { 
     classFinderService = new ClassFinderService(); 
    } 

    public List<Integer> testFindAnnotatedClassByPackage() throws ClassNotFoundException, NoSuchMethodException, SecurityException { 

     String pattern = "\\bid\\b=\\[(.+?)\\]"; 
     Pattern r = Pattern.compile(pattern); 
     List<String> classFilePaths = classFinderService.findAnnotatedClassesInPackage("com.mobile.tests", TestInfo.class); 
     Set<String> set = new HashSet<>(); 
     set.addAll(classFilePaths); 
     classFilePaths.clear(); 
     classFilePaths.addAll(set); 

     List<Integer> myListIntegers = new ArrayList<Integer>(); 
     for (String ids : classFilePaths) { 
      Pattern p = Pattern.compile("\\d+"); 
      Matcher m = p.matcher(ids); 
      while (m.find()) { 
       myListIntegers.add(Integer.parseInt(m.group())); 
      } 
     } 

     for(int str: myListIntegers) 
     { 
      System.out.println(str); 
     } 
     return myListIntegers; 
    } 
} 

用途ClassFinderService類和它的方法findAnnotatedClassesInPackage()這個類是另一個項目Project2not Project1

TestInfoFinder類最初finds annotations在包com.mobile.tests然後創建名爲classFilePaths的列表。然後我將classFilePaths列表的這些String值轉換爲整數(這是我想要的),並將它們存儲在myListIntegers列表中。首先是第一個Java項目的一部分說Project1

現在,我有另外一個項目說Project2,有一個叫Integration.java類,它有一個方法:

public static String addRun() { 
........ 
... 
List<Integer> cases = new ArrayList<Integer>(); 
     for (int index=0; index < myListIntegers.length; index++) 
     { 
      cases.add(myListIntegers[index]); 
     } 
} 

在上面的代碼中,myListIntegers應該來自我Project1'sreturned List (from TestInfoFinder class)

對於PROJECT1和Project2中的上述情況下,我怎麼能使用returned listProject1Project 2?另外,有沒有更好的方法來修改Project1中的類TestInfoFinder(截至目前,我必須運行整個類來獲取列表,而其他方法對我的目標會更好)?

回答

0

這可如果你創建一個列表,類變量和返回列表分配給類變量來解決

1)。

2)在項目2你需要有類的參考,並嘗試從參考中獲取列表。