0

所以,我的任务是在一个相当大的项目中唯一地命名所有摆动组件,命名约定为 name_of_ contains_classnumber_of_its_instance/name_of_variable_holding_component。所以我编写了一个程序来自动搜索所有代码库,并在每次初始化 Swing 组件后对其进行适当的命名。我从这个静态方法中获取实例编号:

public static int getInstanceNumber(Object instance) {
    if (instancesMap.get(instance.getClass()) != null) {
        List<Object> instances = instancesMap.get(instance.getClass());
        if (!instances.contains(instance)) {
            instances.add(instance);
            return instancesMap.get(instance.getClass()).size();
        } else {
            return instances.indexOf(instance) + 1;
        }
    } else {
        ArrayList<Object> instances = new ArrayList<Object>();
        instances.add(instance);
        instancesMap.put(instance.getClass(), instances);
        return instancesMap.get(instance.getClass()).size();
    }
}

我像 some_component.setName(className+getInstanceNumber(this)/variable_name); 一样使用它

它完成了工作,我的问题是我需要这个命名在执行过程中保持一致。我需要查看什么以确保线程不会妨碍您,或者我如何以不同的方式处理它以避免在不同的执行中出现不同命名的问题(假设我们在应用程序中通过相同的路径) .

我需要这些名称用于挤压自动化测试,所以每次我们执行相同的测试时,我们需要相同的名称用于完全相同的摆动组件/

4

1 回答 1

1

你将不得不完全重做这个。在这个设置中,线程会让你失望,但如果有人改变了代码,它会重新编号所有调用这个方法的东西。

我建议要么对名称进行硬编码,使用类的名称,要么查看此要求背后的目标,看看是否有替代方案。

于 2014-01-17T12:25:37.520 回答