Java 根据对象的属性将对象设置为特定类型
我有以下要求 假设有2个属性,其中每个属性可以有3个值中的一个(多选),因此我们可以有2 x 3=6个不同类型的对象 给定一个具有这些属性值的对象,我需要将其映射到特定类型Java 根据对象的属性将对象设置为特定类型,java,algorithm,design-patterns,Java,Algorithm,Design Patterns,我有以下要求 假设有2个属性,其中每个属性可以有3个值中的一个(多选),因此我们可以有2 x 3=6个不同类型的对象 给定一个具有这些属性值的对象,我需要将其映射到特定类型 在Java中实现这一点的最佳方法是什么?有没有我可以考虑的设计模式?< p>这里是使用 EnUM 实现2x3选项:的例子。 enum Types { TYPE1('A',1), TYPE2('A',2), TYPE3('B',1), TYPE4('B',2), TYPE5('C',1
在Java中实现这一点的最佳方法是什么?有没有我可以考虑的设计模式?< p>这里是使用<代码> EnUM <代码>实现2x3选项:的例子。
enum Types {
TYPE1('A',1),
TYPE2('A',2),
TYPE3('B',1),
TYPE4('B',2),
TYPE5('C',1),
TYPE6('C',2);
private final char x;
private final int i;
Types(char x, int i) {
this.x = x;
this.i = i;
}
}
在上面的示例中,您可以使用以下字符之一创建类型.TYPE1,…,Types.TYPE6
:A,B
,C
和一个int:1
,2
当然,这只是一个示例,您可以用所需的任何其他属性替换
char
和int
。为什么不使用一个同时具有这两个属性作为字段的POJO,读取POJO并推断出所需的值?您必须将其映射到其他对象吗?一个具有2个枚举的类,每个枚举都有3个值。我将为不同的类型创建一个枚举,在对象中创建该枚举的私有实例,然后决定如何适当设置该枚举字段,以及如何从外部类使用它?@NinaBingle将其作为单独的问题与具体示例一起发布,我会告诉你怎么做。@ninappingale你是说像类型。TYPE1
还是类型。TYPE6
就像它在答案中建议的那样?@PeterLawrey:我是说如何调用类型(char x,int I)
-比如新类型('A',5)
或者其他方式?@ninappingale不,您可以调用Types.Type1
或在枚举中实现另一个方法:Types-getType(char x,int i)