次のコードは動作しますが、書きませんでした。コンピュータのポート名を調べ、指定された文字列(RxTxシリアル通信の場合)に一致させようとします。Java:シリアルポートの列挙とforループ
私の質問は、forループ内のステートメントは何ですか?私は決して他のアレンジメントを見たことがありません(初期化;条件テスト;反復子)ステートメント;
私は、(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が列挙、文字列のその配列ではありません。詳細については、Oracleのマニュアルを参照してください。 – Lynch
私はそれも配列で動作すると思います。 – iandisme