有人可以显示用ArrayList替换向量的正确语法吗?
原始代码 -
StringBuilder msg = new StringBuilder();
msg.append(event.toString());
Vector<? extends VariableBinding> varBinds = event.getPDU()
.getVariableBindings();
尝试过 -
List<String> variables = new ArrayList<>();
for (VariableBinding binding : event.getPDU().getVariableBindings()) {
variables.add(String.valueOf(binding.getVariable()));
}
但是多个问题(不支持菱形运算符,可以将ArrayList转换为String)。 Netbeans / JDK1.6
并尝试过 -
ArrayList<String> list = new ArrayList<String>(varBinds) = event.getPDU().getVariableBindings();
但意外类型,所需变量找到值,找不到符号变量varBinds。
赞赏的想法
此致 活性
答案 0 :(得分:1)
JDK 1.6中没有钻石操作员。您需要使用旧样式泛型形式定义ArrayList:
import java.util.List;
import java.util.ArrayList;
List<String> variables = new ArrayList<String>();
遵循
的SNMP4J文档http://www.snmp4j.org/doc/index.html
event.getPDU().getVariableBindings()
将返回VariableBindings
如果你想将它存储在VariableBindings的ArrayList中,你可以
List<VariableBinding> variables = new ArrayList<String>(event.getPDU().getVariableBindings());
但是,如果您要存储VariableBinding的字符串表示形式,则可以检索基础Variable的字符串表示形式
e.g。
List<String> variables = new ArrayList<String>();
for (VariableBinding binding : event.getPDU().getVariableBindings()) {
variables.add(binding.getVariable().toString());
}
这完全取决于你想要达到的目标。