Java 向枚举添加字段

Java 向枚举添加字段,java,testing,automated-tests,integration-testing,Java,Testing,Automated Tests,Integration Testing,我必须为一个项目写一个验收测试。在这个项目中有一个公共的最终枚举,它包含另一个带有方法的枚举。我应该在运行时添加新值,但我不知道如何实现这个结果。我使用的语言是Java 您能帮助我吗?您不能在java中的枚举中动态创建条目。我建议使用映射来执行类似的操作,但它不会是枚举。您不能在java中的枚举中动态创建条目。我建议使用映射来执行类似操作,但它不会是枚举。让您的枚举实现一个接口,该接口声明getter方法以访问要扩展的枚举上的字段。在客户端代码中,更改将枚举带到接口的所有方法。通过这种设计,您可

我必须为一个项目写一个验收测试。在这个项目中有一个公共的最终枚举,它包含另一个带有方法的枚举。我应该在运行时添加新值,但我不知道如何实现这个结果。我使用的语言是Java


您能帮助我吗?

您不能在java中的枚举中动态创建条目。我建议使用映射来执行类似的操作,但它不会是枚举。

您不能在java中的枚举中动态创建条目。我建议使用映射来执行类似操作,但它不会是枚举。

让您的枚举实现一个接口,该接口声明getter方法以访问要扩展的枚举上的字段。在客户端代码中,更改将枚举带到接口的所有方法。通过这种设计,您可以轻松地为测试添加新值。

让您的枚举实现一个接口,该接口声明getter方法以访问要扩展的枚举上的字段。在客户端代码中,更改将枚举带到接口的所有方法。通过这种设计,您可以轻松地为测试添加新值。

为什么不创建一个列表(例如LinkedList等)并使用枚举的values()方法 将初始值(枚举的值)放入列表。然后,您可以在运行时将新值添加到列表中,例如:

要迭代枚举的值,只需使用values();示例假定正确声明公共枚举月{…}:

1. for (Month month : Month.values()) {  
2.  //do something  
3. }  
这是一个URL,其中包含有关将values()与枚举一起使用的信息:

http://www.coderanch.com/t/410234/java/java/Iteration-Enum

为什么不创建一个列表(例如LinkedList等)并使用枚举的values()方法呢 将初始值(枚举的值)放入列表。然后,您可以在运行时将新值添加到列表中,例如:

要迭代枚举的值,只需使用values();示例假定正确声明公共枚举月{…}:

1. for (Month month : Month.values()) {  
2.  //do something  
3. }  
这是一个URL,其中包含有关将values()与枚举一起使用的信息:

http://www.coderanch.com/t/410234/java/java/Iteration-Enum

我不能更改代码!我必须返回一个枚举类型听起来像是在做XY反模式。你到底想达到什么目的?我正试图做到这一点:但更一般。我没有任何开关。我不能更改代码!我必须返回一个枚举类型听起来像是在做XY反模式。你到底想达到什么目的?我正试图做到这一点:但更一般。我没有任何开关。为什么要在枚举中添加值才能编写验收测试?因为我必须从FIT表中加载新值,这些值由系统中的枚举类型表示。枚举的目的是提供一组静态约束的值-如果您需要一组可动态读取的开放式值,请不要使用枚举。您唯一的选择是更改代码以返回从表中的数据构造的类的实例,或静态地向枚举添加新字段。我无法选择对象的类型。我正在测试一个对象,它是一个枚举。java类型系统告诉您代码不符合您的要求。如果枚举未表示必须返回的值的范围,则代码未通过验收测试,因为您的某些场景甚至无法表示。为什么需要向枚举添加值以编写验收测试?因为我必须从FIT表加载新值,这些值由系统中的枚举类型表示。枚举的目的是提供一组静态约束的值-如果您需要一组可动态读取的开放式值,请不要使用枚举。您唯一的选择是更改代码以返回从表中的数据构造的类的实例,或静态地向枚举添加新字段。我无法选择对象的类型。我正在测试一个对象,它是一个枚举。java类型系统告诉您代码不符合您的要求。如果枚举未表示必须返回的值的范围,则代码未通过验收测试,因为某些场景甚至无法表示。