Java 正在检查MIB对象是否为DisplayString

Java 正在检查MIB对象是否为DisplayString,java,snmp,Java,Snmp,我正在使用java Mibble库来处理MIB文件,并为我的snmp代理创建MIB实现。我有一个小问题: 有一种DisplayString类型表示八位字节字符串,但只能包含7位ASCII字符。还有一种类似AdminString的类型,它是八位字节字符串的另一种表示形式,但可以包含所有ASCII字符 所以我的问题是:如何区分DisplayString(以便在我的实现中检查大于126的字符)和Admin String?我试图使用MibTypeTag[1],但显然我不知道如何使用它(有什么提示吗?),

我正在使用java Mibble库来处理MIB文件,并为我的snmp代理创建MIB实现。我有一个小问题:

有一种DisplayString类型表示八位字节字符串,但只能包含7位ASCII字符。还有一种类似AdminString的类型,它是八位字节字符串的另一种表示形式,但可以包含所有ASCII字符

所以我的问题是:如何区分DisplayString(以便在我的实现中检查大于126的字符)和Admin String?我试图使用MibTypeTag[1],但显然我不知道如何使用它(有什么提示吗?),它说“可以区分使用相同或类似原语ASN.1类型表示(如DisplayString和IpAddress)的类型”

我的书面英语并不完美,因此我想做以下几点:

if (MibTypeTag == DisplayString) {
   check for chars greater than 126
}
else if (MibTypeTag == AdminString) {
   awesome! nothing to do!
}
提前谢谢


[1] 好的,我解决了这个问题

我决定根本不使用getTag(),而是尝试了以下算法:

  • 获取对象的类型(getType())并检查它是否是StringType的实例

  • 如果是,我从中获得参考符号:

    MibTypeSymbol mts=(StringType)myObj.getReferenceSymbol()

  • 然后我将这个MibTypeSymbol转换成字符串,并与“DisplayString”进行比较

    mts.toString.equals(“显示字符串”)

  • 就目前而言,它正在发挥作用

    也许这会对将来的人有所帮助

    但也许有人有更好的主意