我有一个PropertyBag
类,它可以模拟可由对象消耗的一组属性。标准化java构造函数以供反射使用
我也有几类A1, A2, ..., AN
有形式
public A...(PropertyBag);
的构造所有这些类都实现了接口iA
。
我使用反射来创建相关A...
传递一个PropertyBag
。我从PropertyBag
对象中提取数据以生成该类的候选成员数据。
我想要做的是通过强制A...
类的实现者编译时间来实现上述形式的构造函数。我意识到我的要求很奇怪:为什么你想要标准化施工参数?但我在这里有一个例子。
我当然可以做的是有一个单独的构建和初始化步骤,因为我可以将初始化函数标记为抽象的,甚至可以将iA
更改为包含该抽象初始化函数定义的抽象类。我会用反射来初始化。如果任何A...
缺少初始化函数,那么这会给我编译时间失败,因为我希望。但我不喜欢将构造和初始化分离为构建但未初始化的对象没有意义的想法。
我在这里错过了一招吗? (在C++中,我可以在编译时使用模板强制执行,但在Java中看不到方法)。