问题标签 [enums]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何轻松地将 C++ 枚举映射到字符串
我正在使用的一些库头文件中有一堆枚举类型,我想要一种将枚举值转换为用户字符串的方法 - 反之亦然。
RTTI 不会为我这样做,因为“用户字符串”需要比枚举更具可读性。
蛮力解决方案将是一堆这样的函数,但我觉得这有点太像 C 了。
我有一种直觉,认为有一个使用模板的优雅解决方案,但我还不能完全理解它。
更新:感谢您的建议-我应该明确说明枚举是在第三方库标头中定义的,所以我不想更改它们的定义。
我现在的直觉是避免使用模板并执行以下操作:
c# - C# 枚举类型安全吗?
C# 枚举类型安全吗?
如果不是,有什么影响?
java - Java 枚举定义
我以为我非常了解 Java 泛型,但后来我在 java.lang.Enum 中遇到了以下内容:
有人可以解释如何解释这个类型参数吗?提供可以使用类似类型参数的其他示例的奖励积分。
enums - 查找枚举类型的最佳位置在哪里?
我发现通常有一个单一类型或命名空间将任何特定枚举作为参数,因此我总是在那里定义这些枚举。不过最近,我让一位同事大谈特谈这是一件多么愚蠢的事情,并且您应该始终在项目的根目录中有一个枚举命名空间,您可以在其中定义每个枚举类型。
查找枚举类型的最佳位置在哪里?
c++ - 使用嵌套 C++ 类和枚举的优缺点?
使用嵌套的公共 C++ 类和枚举的优缺点是什么?例如,假设您有一个名为 的类printer
,并且该类还存储输出托盘上的信息,您可以:
或者:
我可以看到嵌套私有枚举/类的好处,但是当涉及到公共枚举/类时,办公室是分开的——它似乎更像是一种风格选择。
那么,你更喜欢哪个,为什么?
design-patterns - 您使用的是 C++ 中的哪个类型安全枚举?
众所周知,C++ 中的内置枚举不是类型安全的。我想知道那里使用了哪些实现类型安全枚举的类......我自己使用以下“自行车”,但它有点冗长和有限:
typesafeenum.h:
typesafeenum.cpp:
用法:
补充: 我认为我应该对要求更具体。我将尝试总结它们:
优先级 1:将枚举变量设置为无效值应该是不可能的(编译时错误),没有例外。
优先级 2:应该可以通过单个显式函数/方法调用将枚举值转换为 int。
优先级3:尽可能简洁、优雅、方便的声明和使用
优先级 4:将枚举值与字符串转换。
Priority 5: (Nice to have) Possibility to iterate over enum values.
xsd - JAXB - XJC - 影响生成的类型安全枚举类和成员
使用 XJC 编译器(来自 JAXB 包)编译以下 simpleType 时...
我最终在 Java 中得到了以下枚举(删除了导入语句和注释)
这正是我想要的......除了public String value()
方法。我希望public String getValue()
根据 Sun 的命名约定调用该方法。这样我就可以轻松地在使用 EL 的 JSP 页面中使用它。现在我必须解决它。
getValue()
有没有人有任何经验将 XJC 编译进一步调整为使用方法而不是方法的更有用的枚举value()
?或者我可以添加一个方法或什么?
PS 这发生在 JAXB 的 v2.0.3 中。我下载了最新版本v2.1.8 和那里一样...
java - 我应该如何实现一个下拉框,其中包含需要以不同语言显示的项目列表?
我正在尝试设计一个表单,其中包含一个包含杂货选择列表的下拉框。
在尝试决定是使用 java 枚举还是查找表时,我应该查看哪些标准?此外,我需要提前计划 i18n 对下拉字符串的支持。
java - Java 可扩展枚举
有没有办法编写一个可以扩展的枚举。我有几种方法我希望始终可用于我的枚举。例如,我对我的数据库字段使用枚举。我在数据库中包含了实际的字段名称。
c# - 从库类中公开枚举
在 C# 中,我使用的是定义枚举的库。我想允许我的代码的使用者(在不同的程序集中)将枚举值作为参数传递给我的一个函数,而不必自己引用底层库。
有没有办法让我向我的消费者公开图书馆的枚举?