我目前正在编写一个简单的解析器,用于使用会话描述协议(SDP;参见:https ://www.rfc-editor.org/rfc/rfc4566 )传递的流信息。
对于不同的字段,例如originator或media,存在可以具有不同值的标志。例如,媒体字段上的媒体传输协议(参见:https ://www.rfc-editor.org/rfc/rfc4566#section-8.2.2 )
m=audio 49170 RTP/AVP 0
根据规范,proto 标志(媒体传输协议)可以是“RTP/AVP”、“RTP/SAVP”或“UDP”。
因为这个标志可以有很多值,所以使用enum
:
public enum MediaTransportProtocol {
UDP,
RTP_AVP
RTP_SAVP
}
但现在问题来了:没有字符串 enum这样的东西,所以我不能用它来解析(例如,因为/
RTP/AVP 中的 " " char ..)所以我必须定义额外的常量来切换解析媒体字段时通过媒体传输协议标志。
我考虑DESCRIPTION
过在每个enum
字段上使用“”属性,但是我必须编写一个额外的方法/扩展方法来接收enum flag description
(收集枚举描述属性不是一个简单的任务恕我直言)
解析此类数据的最佳实践是什么?还是有类似字符串枚举的东西而我只是不知道?
public enum MyStringEnum {
ENUMVAL1 = "EnumVal-01",
ENUMVAL2 = "EnumVal-02"
...
}