2016-05-23 6 views
-1

ich eine Java-Klasse haben TestInfoFinder in Project1 genannt, die Testcase wie unten erweitert:Java-Methode des zurückgegebenen Liste als Ausgabe in einem anderen Verfahren eines anderen Projekts Mit

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; 
    } 
} 

Verwendet ClassFinderService Klasse und ihre Methode findAnnotatedClassesInPackage() und diese Klasse in ist ein anderes Projekt Project2 und not Project1.

TestInfoFinder Klasse zunächst finds annotations im Paket com.mobile.tests und erstellt dann eine Liste namens classFilePaths. Dann konvertiere ich diese String-Werte der classFilePaths-Liste in die ganzzahligen (was ich will) und speichere sie in der myListIntegers-Liste. Vor allem ist der Teil des ersten Java-Projekt sagen Project1

Nun habe ich ein anderes Projekt sagen Project2, die eine Klasse namens Integration.java und es hat eine Methode wie:

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

In kleinen Skript, myListIntegers kommen aus meiner Project1's Klasse sollte returned List (from TestInfoFinder class)

Für dieses Szenario von Projekt1 und Project2, wie kann ich die returned list von Project1 in die Project 2 verwenden? Gibt es auch einen besseren Ansatz, um die Klasse TestInfoFinder in Project1 zu ändern (ab sofort muss ich die gesamte Klasse ausführen, um die Liste zu erhalten, eher wäre etwas anderes für mein Ziel besser)?

Antwort

0

Dies kann

1) gelöst werden, wenn Sie eine Liste als Klassenvariable erstellen und die zurückgegebenen Liste der Klassenvariablen zuweisen.

2) In Projekt 2 müssen Sie die Referenz der Klassen haben und versuchen, die Liste von der Referenz zu bekommen.

Verwandte Themen