加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何允许用户选择要初始化的类

发布时间:2020-12-15 04:36:52 所属栏目:Java 来源:网络整理
导读:我有一个抽象类Foo,它包含一个函数a(Object o). 根据您使用的Foo实现,(Object o)的实现略有不同. 我希望程序的用户能够确定使用Foo的实现(例如,aFoo,bFoo,cFoo等),但我想减少对条件逻辑的使用,以便我可以添加到我的将来计划更安全. 我目前有一个Enum eBar,其
我有一个抽象类Foo,它包含一个函数a(Object o).
根据您使用的Foo实现,(Object o)的实现略有不同.

我希望程序的用户能够确定使用Foo的实现(例如,aFoo,bFoo,cFoo等),但我想减少对条件逻辑的使用,以便我可以添加到我的将来计划更安全.

我目前有一个Enum eBar,其中包含用户可以选择的所有Foo实现的名称,但我无法确定如何使用它来初始化该类.

解决方法

在每个枚举实例中存储要使用的Foo实例,或者添加一个创建Foo的方法:

public enum FooType {
    A {
        @Override
        public Foo createFoo() {
            return new AFoo();
        }
    },B {
        @Override
        public Foo createFoo() {
            return new BFoo();
        }
    }

    public abstract Foo createFoo();
}

然后,一旦用户选择了类型,您需要做的就是

selectedFooType.createFoo().a(object);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读