คำถามติดแท็ก enums

ชนิดข้อมูลประกอบด้วยชุดของค่าที่กำหนดชื่อเรียกว่าองค์ประกอบสมาชิกหรือตัวแจงนับของชนิด

5
เหตุใดตัวสร้างของ enum จึงไม่สามารถเข้าถึงฟิลด์แบบคงที่ได้
เหตุใดตัวสร้างของ enum จึงไม่สามารถเข้าถึงฟิลด์และเมธอดแบบคงที่ได้? สิ่งนี้ใช้ได้กับคลาส แต่ไม่อนุญาตให้ใส่ enum สิ่งที่ฉันพยายามทำคือจัดเก็บอินสแตนซ์ enum ของฉันไว้ในแผนที่แบบคงที่ พิจารณาโค้ดตัวอย่างนี้ซึ่งช่วยให้สามารถค้นหาได้โดยการย่อ: public enum Day { Sunday("Sun"), Monday("Mon"), Tuesday("Tue"), Wednesday("Wed"), Thursday("Thu"), Friday("Fri"), Saturday("Sat"); private final String abbreviation; private static final Map<String, Day> ABBREV_MAP = new HashMap<String, Day>(); private Day(String abbreviation) { this.abbreviation = abbreviation; ABBREV_MAP.put(abbreviation, this); // Not valid } public String …
110 java  enums 

5
วิธีรับ enum ที่สร้างในรหัส attrs.xml
ฉันสร้างมุมมองที่กำหนดเอง (ค้นหาได้ที่นี่ ) โดยมีแอตทริบิวต์ที่สามารถกำหนดรูปแบบได้ประเภท enum ใน xml ตอนนี้ฉันสามารถเลือกหนึ่งในรายการ enum สำหรับแอตทริบิวต์ที่กำหนดเองของฉัน ตอนนี้ฉันต้องการสร้างเมธอดเพื่อตั้งค่านี้โดยทางโปรแกรม แต่ฉันไม่สามารถเข้าถึง enum ได้ attr.xml <declare-styleable name="IconView"> <attr name="icon" format="enum"> <enum name="enum_name_one" value="0"/> .... <enum name="enum_name_n" value="666"/> </attr> </declare-styleable> layout.xml <com.xyz.views.IconView android:id="@+id/heart_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="enum_name_x"/> สิ่งที่ฉันต้องการคือ: mCustomView.setIcon(R.id.enum_name_x); แต่ฉันไม่พบ enum หรือฉันไม่รู้ว่าจะหา enum หรือชื่อ enum ได้อย่างไร

10
วิธีรับค่า enum ด้วยสตริงหรือ int
ฉันจะรับค่า enum ได้อย่างไรถ้าฉันมีสตริง enum หรือค่า int enum เช่น: ถ้าฉันมี enum ดังนี้: public enum TestEnum { Value1 = 1, Value2 = 2, Value3 = 3 } และในตัวแปรสตริงฉันมีค่า "value1" ดังนี้: string str = "Value1" หรือในตัวแปร int บางตัวฉันมีค่า 2 เช่น int a = 2; ฉันจะรับตัวอย่างของ enum ได้อย่างไร ฉันต้องการวิธีการทั่วไปที่ฉันสามารถระบุ enum และสตริงอินพุตหรือค่า int ของฉันเพื่อรับอินสแตนซ์ enum
110 c#  enums 

9
จะลบค่าประเภท enum ใน postgres ได้อย่างไร?
ฉันจะลบค่าประเภท enum ที่ฉันสร้างใน postgresql ได้อย่างไร create type admin_level1 as enum('classifier', 'moderator', 'god'); เช่นฉันต้องการลบออกmoderatorจากรายการ ฉันไม่พบสิ่งใดในเอกสาร ฉันใช้ Postgresql 9.3.4
109 postgresql  enums 

18
จับคู่ระหว่าง enum และ int / String ได้อย่างสะดวกสบาย
เมื่อทำงานกับตัวแปร / พารามิเตอร์ที่รับค่าได้เพียงจำนวน จำกัด ฉันพยายามใช้ Java เสมอenumเช่นเดียวกับใน public enum BonusType { MONTHLY, YEARLY, ONE_OFF } ตราบเท่าที่ฉันอยู่ในรหัสของฉันมันก็ใช้ได้ดี อย่างไรก็ตามฉันมักจะต้องเชื่อมต่อกับโค้ดอื่น ๆ ที่ใช้ค่าธรรมดาint(หรือString) เพื่อจุดประสงค์เดียวกันหรือฉันต้องการอ่าน / เขียนจาก / ไปยังฐานข้อมูลที่เก็บข้อมูลเป็นตัวเลขหรือสตริง ในกรณีนี้ฉันต้องการวิธีที่สะดวกในการเชื่อมโยงค่า enum แต่ละค่ากับจำนวนเต็มเพื่อให้ฉันสามารถแปลงทั้งสองวิธีได้ (หรืออีกนัยหนึ่งคือฉันต้องการ "enum ย้อนกลับได้") การเปลี่ยนจาก enum เป็น int นั้นง่ายมาก: public enum BonusType { public final int id; BonusType(int id) { this.id = id; } …
108 java  enums  coding-style 

8
ประหยัด enum จากการเลือกใน Rails 4.1
ฉันใช้ enums ใน Rails 4.1 เพื่อติดตามสีของไวน์ Wine.rb class Wine < ActiveRecord::Base enum color: [:red, :white, :sparkling] end ในมุมมองของฉันฉันสร้างสิ่งที่เลือกเพื่อให้ผู้ใช้สามารถเลือกไวน์ที่มีสีที่ต้องการได้ f.input :color, :as => :select, :collection => Wine.colors สิ่งนี้สร้าง HTML ต่อไปนี้: <select id="wine_color" name="wine[color]"> <option value=""></option> <option value="0">red</option> <option value="1">white</option> <option value="2">sparkling</option> </select> '1' is not a valid colorแต่เมื่อส่งแบบฟอร์มที่ผมได้รับข้อผิดพลาดในการโต้แย้งระบุ ผมทราบดีว่านี่เป็นเพราะcolorต้องเท่ากับและไม่ได้1"1" มีวิธีบังคับให้ Rails …

13
Jackson databind enum ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
ฉันจะ deserialize สตริง JSON ที่มีค่า enum ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ได้อย่างไร (โดยใช้ Jackson Databind) สตริง JSON: [{"url": "foo", "type": "json"}] และ Java POJO ของฉัน: public static class Endpoint { public enum DataType { JSON, HTML } public String url; public DataType type; public Endpoint() { } } ในกรณีนี้การ deserializing JSON ด้วย"type":"json"จะล้มเหลวในกรณีที่ได้"type":"JSON"ผล แต่ฉันต้องการ"json"ทำงานด้วยเพื่อเหตุผลในการตั้งชื่อ การทำให้ POJO …

4
ค่า enum เริ่มต้นใน C เหมือนกันสำหรับคอมไพเลอร์ทั้งหมดหรือไม่
เมื่อประกาศ enum ตามที่แสดงด้านล่างคอมไพเลอร์ C ทั้งหมดตั้งค่าเริ่มต้นเป็นx=0หรือy=1ไม่และz=2ทั้งบนระบบ Linux และ Windows typedef enum { x, y, z } someName;
107 c  enums 

9
C ++ enums ลงนามหรือไม่ได้ลงนาม?
C ++ enums ลงนามหรือไม่ได้ลงนาม? และโดยส่วนขยายจะปลอดภัยหรือไม่ที่จะตรวจสอบอินพุตโดยตรวจสอบว่าเป็น <= ค่าสูงสุดของคุณและเว้นไว้> = ค่าขั้นต่ำของคุณ (สมมติว่าคุณเริ่มต้นที่ 0 และเพิ่มขึ้นทีละ 1)
107 c++  enums 

8
Java โดยใช้ enum พร้อมคำสั่ง switch
ฉันได้ดู Q & As ต่างๆเกี่ยวกับ SO คล้ายกับคำถามนี้ แต่ไม่พบวิธีแก้ปัญหา สิ่งที่ฉันมีคือ enum ซึ่งแสดงถึงวิธีต่างๆในการดูทีวีไกด์ ... ในApplicationคลาสNDroid static enum guideView { GUIDE_VIEW_SEVEN_DAY, GUIDE_VIEW_NOW_SHOWING, GUIDE_VIEW_ALL_TIMESLOTS } ... เมื่อผู้ใช้เปลี่ยนมุมมองตัวจัดการเหตุการณ์จะได้รับintจาก 0-2 และฉันต้องการทำสิ่งนี้ ... ในActivity onClick(DialogInterface dialog, int which)ตัวจัดการเหตุการณ์Android // 'which' is an int from 0-2 switch (which) { case NDroid.guideView.GUIDE_VIEW_SEVEN_DAY: ... break; } ฉันคุ้นเคยกับ C # enums …

4
enum.values ​​() - คือลำดับของการกำหนดค่า enums ที่ส่งคืน
ฉันมี enum SOME_ENUM: public enum SOME_ENUM { EN_ONE, EN_TWO, EN_THREE; } จะSOME_ENUM.values()ส่งคืน enum ตามลำดับการประกาศ enum เสมอ: EN_ONE, EN_TWO, EN_THREE? เป็นกฎหรือไม่รับประกันว่าจะไม่มีการเปลี่ยนแปลงใน JDK รุ่นถัดไป?

11
Enums ที่มีประสิทธิภาพใน Kotlin ด้วยการค้นหาแบบย้อนกลับ?
ฉันพยายามหาวิธีที่ดีที่สุดในการ 'ค้นหาแบบย้อนกลับ' ใน enum ใน Kotlin ข้อได้เปรียบอย่างหนึ่งของฉันจาก Effective Java คือคุณแนะนำแผนที่แบบคงที่ภายใน enum เพื่อจัดการการค้นหาแบบย้อนกลับ การย้ายสิ่งนี้ไปยัง Kotlin ด้วย enum อย่างง่ายทำให้ฉันไปสู่รหัสที่มีลักษณะดังนี้: enum class Type(val value: Int) { A(1), B(2), C(3); companion object { val map: MutableMap<Int, Type> = HashMap() init { for (i in Type.values()) { map[i.value] = i } } fun fromInt(type: Int?): …
105 enums  kotlin 

3
จะสร้างประเภท ENUM ใน SQLite ได้อย่างไร?
ฉันต้องการแปลงตารางจาก MySQL เป็น SQLite แต่ฉันไม่สามารถหาวิธีแปลงฟิลด์ enum ได้เนื่องจากฉันไม่พบENUMประเภทใน SQLite ฟิลด์ดังกล่าวอยู่pTypeในตารางต่อไปนี้: CREATE TABLE `prices` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `pName` VARCHAR(100) NOT NULL DEFAULT '', `pType` ENUM('M','R','H') NOT NULL DEFAULT 'M', `pField` VARCHAR(50) NULL DEFAULT NULL, `pFieldExt` VARCHAR(50) NULL DEFAULT NULL, `cmp_id` INT(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) …
105 sqlite  types  enums 

2
แปลง enum เป็น List <string>
ฉันจะแปลง Enum ต่อไปนี้เป็นรายการสตริงได้อย่างไร [Flags] public enum DataSourceTypes { None = 0, Grid = 1, ExcelFile = 2, ODBC = 4 }; ฉันไม่พบคำถามที่แน่นอนนี้Enum to Listนี้ใกล้เคียงที่สุด แต่ฉันต้องการเป็นพิเศษList&lt;string&gt;
105 c#  .net  enums  generic-list 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.