我有这个 Hashtable<DecodeHintType, Object> decodeHints = new Hashtable<DecodeHintType, Object>();
decodeHints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
Result result = new UPCAReader().decode(bitmap, decodeHints);
enum
我可以像这样使用它:
public enum Format {
case label(key: String)
case textField(key: String)
case image(key: String)
}
Format.label(key: "abc")
Format.textField(key: "0.0")
当我尝试获取值时,我可以这样做:
Format.image(key: "mystringfile")
这样我可以得到值,但是找不到大小写let control = Format.label(key: "abc")
if case let Format.label(key) = control {
tmp = key
} else if case let Format.image(key) = control {
tmp = key
} else if case let Format.textField(key) = control {
tmp = key
}
,label
或textfield
。
如何找到属于该变量的枚举?
如果我尝试使用以下方式:
image
我得到了错误:
二进制运算符'=='不能应用于类型的操作数 'Table.Format'和'(String)-> Format'
答案 0 :(得分:0)
我可能会误解您的问题,但是为什么不使用switch
?
let control = Format.label(key: "abc") // or = Format.textField(key: "whatever") or = Format.image(key: "whatever")
let tmp: String
switch control {
case .label(let key):
// It's a label, do what you need
tmp = key
case .textField(let key):
// It's a textField, do what you need
tmp = key
case .image(let key):
// It's a image, do what you need
tmp = key
}
这使您可以对类型进行操作并获取值。