Следующий код работает, однако я его не написал. Он просматривает имена портов компьютеров и пытается сопоставить их с указанной строкой (для последовательной коммутации RxTx).Java: перечисление последовательного порта и for-loop
Мой вопрос в том, что делает утверждение внутри цикла for? Я никогда не видел каких-либо договоренностей, кроме того, для (statementize; condition test; iterator) statement;
По существу, я спрашиваю, что делает часть (String portName: PORT_NAMES), и оператор «:» делает?
private static final String PORT_NAMES[] = {
"/dev/tty.usbserial-A9007UX1", // Mac OS X
"/dev/ttyUSB0", // Linux
"COM4", // Windows
};
CommPortIdentifier portId = null;
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
// iterate through, looking for the port
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
for (String portName : PORT_NAMES) {
if (currPortId.getName().equals(portName)) {
portId = currPortId;
break;
}
}
}
Благодаря
PORT_NAMES не является перечисление его массив строк. – Lynch
Я думаю, это работает и на массивах. – iandisme