枚举在Android工厂测试中的使用

什么是枚举?

枚举是指一个经过排序的,被打包成一个单一实体的项列表。一个枚举的实例可以使用枚举项列表中任意单一项的值,通常用来表示数目有限、形式离散,表达又极为明确的量。

换句话说,枚举像是我们自己定义的一个数据集,里面的元素是我们自认为可以分类在一起的,元素确定且有限,供程序在其他地方使用。

需求

在Android工厂测试中有许多测试条目,每一条目的名称和跳转的测试页面不同,但是这些数据都是明确的不会轻易变更的,所以用到了枚举来实现。

实现

枚举类

public enum TestCase {
    TestOne("com.testproject", "com.testproject.activity.Test1Activity", "test one"),
    TestTwo("com.testproject", "com.testproject.activity.Test2Activity", "test two"),
    TestThree("com.testproject", "com.testproject.activity.Test3Activity", "test three");

    public String packageName;
    public String className;
    public String testName;

    TestCase(String packageName, String className, String testName) {
        this.packageName = packageName;
        this.className = className;
        this.testName = testName;
    }
}

读取枚举类中的所有实例,将其转换成自己所需的数据结构。

private void initData() {
        List<Map<String, Object>> data = new ArrayList<>();
        //创建枚举类型所有实例的集合
        // Set<TestCase> set = Collections.synchronizedSet(EnumSet.allOf(TestCase.class));
        Set<TestCase> set = EnumSet.allOf(TestCase.class);
        //获取集合的迭代器
        Iterator iterator = set.iterator();
        //循环获取实例,然后转换成想要数据
        while (iterator.hasNext()) {
            Intent intent = new Intent();
            TestCase testCase = (TestCase) iterator.next();
            intent.setClassName(testCase.packageName, testCase.className);

            Map<String, Object> map = new HashMap<>();
            map.put("intent", intent);
            map.put("testName", testCase.testName);

            data.add(map);
        }
    }

根据包名和类名跳转Activity

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = (Intent) data.get(position).get("intent");
        startActivity(intent);
    }

EnumSet类

EnumSet是一个专为枚举设计的集合类,里面的元素是我们指定的类型的枚举值。当枚举实例较多时,可以使用其来操作对应的枚举实例。EnumSet使用简介











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值