2016-05-23 1 views
-1

J'ai une classe Java appelée TestInfoFinder en Project1 qui s'étend TestCase comme ci-dessous:Utilisation de la liste retournée de méthode Java en sortie dans une autre méthode d'un autre projet

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

Utilise ClassFinderService classe et sa méthode findAnnotatedClassesInPackage() et cette classe est en un autre projet Project2 et not Project1.

TestInfoFinder classe initialement finds annotations dans le package com.mobile.tests puis crée une liste appelée classFilePaths. Ensuite, je convertis ces valeurs String de la liste classFilePaths en les nombres entiers (ce que je veux) et je les stocke dans la liste myListIntegers. Par-dessus tout est la partie du premier projet Java dire Project1

Maintenant, j'ai un autre projet dire Project2 qui a une classe appelée Integration.java et il a un procédé tel que:

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

Dans extrait ci-dessus, myListIntegers devrait venir de ma classe Project1'sreturned List (from TestInfoFinder class)

Pour le scénario ci-dessus Project1 et Project2, comment puis-je utiliser le returned list de Project1 dans le Project 2? Aussi, est-il une meilleure approche pour modifier la classe TestInfoFinder dans Project1 (à partir de maintenant, je dois exécuter la classe entière pour obtenir la liste, plutôt quelque chose d'autre serait mieux pour mon objectif)?

Répondre

0

Cela peut être résolu

1) Si vous créez une liste comme une variable de classe et d'assigner la liste renvoyée à la variable de classe.

2) Dans le projet 2, vous devez avoir la référence des classes et essayer d'obtenir la liste de la référence.