Questions tagged «enums»

由一组命名值组成的数据类型,这些命名值称为该类型的元素,成员或枚举数。

7
Java枚举定义
我以为我很了解Java泛型,但是随后在java.lang.Enum中遇到了以下内容: class Enum<E extends Enum<E>> 有人可以解释如何解释此类型参数吗?奖励积分,用于提供其他示例,说明可以使用类似类型的参数。
151 java  generics  enums  crtp 

5
在一个类中声明一个枚举
在以下代码段中,Color在Car类内声明了枚举,以限制枚举的范围,并尝试不“污染”全局名称空间。 class Car { public: enum Color { RED, BLUE, WHITE }; void SetColor( Car::Color color ) { _color = color; } Car::Color GetColor() const { return _color; } private: Car::Color _color; }; (1)这是限制Color枚举范围的好方法吗?或者,我应该在Car类之外声明它,但可能在其自己的名称空间或结构中声明它?我今天刚看过这篇文章,该文章提倡后者,并讨论了有关枚举的一些不错的观点:http : //gamesfromwithin.com/stupid-c-tr​​icks-2-better-enums。 (2)在此示例中,当在类中工作时,最好将枚举编码为Car::Color,还是就Color足够了?(我假设前者比较好,以防万一Color在全局名称空间中声明了另一个枚举。至少,这样,我们明确了我们要引用的枚举。)
150 c++  class  enums  namespaces  scope 

10
枚举定义中的波浪号(〜)是什么?
我一直很惊讶,即使在这段时间里一直使用C#之后,我仍然设法找到了我不知道的东西... 我曾尝试在互联网上搜索此内容,但在搜索中使用“〜”对我来说效果不佳,我也没有在MSDN上找到任何内容(并不是说它不存在) 我最近看到了这段代码,波浪号(〜)是什么意思? /// <summary> /// Enumerates the ways a customer may purchase goods. /// </summary> [Flags] public enum PurchaseMethod { All = ~0, None = 0, Cash = 1, Check = 2, CreditCard = 4 } 看到它令我有些惊讶,因此我尝试对其进行了编译,并且它起作用了……但是我仍然不知道它的含义/作用。有帮助吗?

7
为什么Java枚举文字不能具有通用类型参数?
Java枚举很棒。泛型也是如此。当然,由于类型擦除,我们都知道后者的局限性。但是有一件事我不理解,为什么我不能创建这样的枚举: public enum MyEnum<T> { LITERAL1<String>, LITERAL2<Integer>, LITERAL3<Object>; } 这样,该通用类型参数<T>又可以在各个地方使用。想象一下方法的通用类型参数: public <T> T getValue(MyEnum<T> param); 甚至在枚举类本身中: public T convert(Object o); 更具体的例子#1 由于上面的示例对于某些人来说似乎太抽象了,因此下面是一个更现实的示例,说明了为什么要执行此操作。在此示例中,我想使用 枚举,因为这样我就可以枚举一组有限的属性键 泛型,因为这样我就可以具有方法级的类型安全性来存储属性 public interface MyProperties { public <T> void put(MyEnum<T> key, T value); public <T> T get(MyEnum<T> key); } 更具体的例子#2 我有一个数据类型的枚举: public interface DataType<T> {} public enum SQLDataType<T> …
148 java  generics  enums 

16
与具有公共静态final字段的类相比,Java枚举有什么优势?
我对C#非常熟悉,但是开始在Java中工作更多。我希望了解到Java中的枚举基本上与C#中的枚举等效,但显然并非如此。最初,我很高兴得知Java枚举可以包含多条数据,这似乎非常有利(http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)。但是,从那时起,我发现了很多缺少的功能,这些功能在C#中都是微不足道的,例如能够轻松地将枚举元素分配给某个值,从而无需花费大量精力即可将整数转换为枚举的功能(即转换整数值相匹配的Java枚举)。 所以我的问题是:与具有一堆公共静态final字段的类相比,Java枚举对Java枚举有什么好处吗?还是只是提供更紧凑的语法? 编辑:让我更清楚。与具有一堆相同类型的公共static final字段的类相比,Java枚举有什么好处?例如,在第一个链接的行星示例中,枚举相对于具有这些公共常量的类的优势是什么: public static final Planet MERCURY = new Planet(3.303e+23, 2.4397e6); public static final Planet VENUS = new Planet(4.869e+24, 6.0518e6); public static final Planet EARTH = new Planet(5.976e+24, 6.37814e6); public static final Planet MARS = new Planet(6.421e+23, 3.3972e6); public static final Planet JUPITER = new Planet(1.9e+27, 7.1492e7); public …
147 java  enums 


3
UML类图枚举
我正在建模一个类图。类的属性是枚举。我该如何建模?通常,您会执行以下操作: - name : string 但是,如何用枚举做到这一点呢?
145 class  enums  uml  diagram 

6
C ++枚举类可以有方法吗?
我有一个带有两个值的枚举类,并且我想创建一个接收一个值并返回另一个值的方法。我还想保持类型安全(这就是为什么我使用enum类而不是enums的原因)。 http://www.cplusplus.com/doc/tutorial/other_data_types/没有提及任何方法,但是,我的印象是任何类型的类都可以具有方法。
144 c++  methods  enums 

9
是否可以在Obj-C中使用Swift的枚举?
我正在尝试将我的一些Obj-C类转换为Swift。还有其他一些Obj-C类仍在该转换后的类中使用枚举。我在“预发布文档”中进行搜索,但找不到它,或者我错过了它。有没有办法在Obj-C类中使用Swift枚举?或指向此问题的文档的链接? 这就是我在旧的Obj-C代码和新的Swift代码中声明枚举的方式。 我以前的Obj-C代码: typedef NS_ENUM(NSInteger, SomeEnum) { SomeEnumA, SomeEnumB, SomeEnumC }; @interface SomeClass : NSObject ... @end 我的新Swift代码: enum SomeEnum: NSInteger { case A case B case C }; class SomeClass: NSObject { ... } 更新:从答案。在Swift低于1.2的旧版本中无法完成。但是根据这个官方的Swift Blog。在与XCode 6.3一起发布的Swift 1.2中,您可以在Objective-C中使用Swift Enum,方法是@objc在enum
144 objective-c  enums  swift 

21
将Objective-C Typedef转换为其等效字符串
假设我在.h文件中声明了typedef,如下所示: typedef enum { JSON, XML, Atom, RSS } FormatType; 我想构建一个将typedef的数值转换为字符串的函数。例如,如果消息[self toString:JSON]已发送;它将返回“ JSON”。 该函数将如下所示: -(NSString *) toString:(FormatType)formatType { //need help here return []; } 顺便说一句,如果我尝试这种语法 [self toString:FormatType.JSON]; 将typedef值传递给方法,我得到一个错误。我想念什么?
141 c  objective-c  enums  typedef 


6
在Python中将字符串转换为Enum
我想知道将字符串转换(反序列化)为Python的Enum类的正确方法是什么。似乎可以getattr(YourEnumType, str)完成这项工作,但是我不确定它是否足够安全。 更具体地说,我想像这样将'debug'字符串转换为Enum对象: class BuildType(Enum): debug = 200 release = 400

7
C中的枚举的大小是多少?
我正在创建一组枚举值,但是我需要每个枚举值都是64位宽。如果我没记错的话,枚举的大小通常与int相同;但是我想我读过某个地方(至少在GCC中),编译器可以使枚举具有保持其值所需的任何宽度。那么,是否可能有一个64位宽的枚举?
140 c  enums 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.