问题描述
下面是我的 java 枚举。 我想将其转换为 Swift 枚举。 你能帮我迁移吗?
package com.lifeplus.Pojo.Enum;
public enum GattServiceEnum {
CURR_TIME_SERVICE("00001805-0000-1000-8000-00805f9b34fb","current_time"),DEVICE_informatION_SERVICE("0000180a-0000-1000-8000-00805f9b34fb","device_information"),pulse_OXY_SERVICE("00001822-0000-1000-8000-00805f9b34fb","pulse_oximeter"),CUSTOM_SERVICE("4C505732-5F43-5553-544F-4D5F53525600","Custom Service");
private final String _id;
private final String _desc;
GattServiceEnum(String pId,String pDesc) {
_id = pId;
_desc = pDesc;
}
public String getId() {
return _id;
}
public String getDesc() {
return _desc;
}
}
请帮助我将其转换为 Java。
解决方法
无需使用 enum
。您可以简单地使用 struct
public struct GattService {
public let id: String
public let desc: String
// You can optionally provide the get functions,but it is simpler just to access the properties directly
public func getId() -> String {
return id
}
public func getDesc() -> String {
return desc
}
}
,
试试看吧,希望对你有用:
public enum GattServiceEnum {
case myNameCase(id: String,desc: String)
case anotherCase
case onlyIdCase(id: String)
case onlyDescCase(desc: String)
public func getId() -> String? {
switch self {
case .myNameCase(let id,_),.onlyIdCase(let id):
return id
case .anotherCase,.onlyDescCase:
return nil
}
}
public func getDesc() -> String? {
switch self {
case .myNameCase(_,let desc),.onlyDescCase(let desc):
return desc
case .anotherCase,.onlyIdCase:
return nil
}
}
}
// create
let myEnumObject = GattServiceEnum.myNameCase(id: "123",desc: "hi")
// get id
print(myEnumObject.getId())
// get desc
print(myEnumObject.getDesc())