使用Java方法返回的List作为另一个项目

时间:2016-05-23 16:50:28

标签: java list dependencies return testcase

我在TestInfoFinder中有一个名为Project1的Java类,它扩展了TestCase,如下所示:

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's班级returned List (from TestInfoFinder class)

对于Project1和Project2的上述方案,如何将returned list中的Project1用于Project 2?另外,有没有更好的方法来修改Project1中的类TestInfoFinder(截至目前,我必须运行整个类来获取列表,而其他东西对我的目标更好)?

1 个答案:

答案 0 :(得分:0)

这可以解决

1)如果您将列表创建为类变量并将返回的列表分配给类变量。

2)在项目2中,您需要获得类的引用,并尝试从引用中获取列表。