I'm studying this piece of code, it is a constructor with several parameters. The declaration of the last parameter with ... What does this mean?
/**
* Public constructor.
* @param servicePort the service port
* @param nodeAddresses the node addresses
* @param sessionAware true if the server is aware of sessions, false otherwise
* @throws NullPointerException if the given socket-addresses array is null
* @throws IllegalArgumentException if the given service port is outside range [0, 0xFFFF],
* or the given socket-addresses array is empty
* @throws IOException if the given port is already in use, or cannot be bound
*/
public TcpSwitch(final int servicePort, final boolean sessionAware, final InetSocketAddress... nodeAddresses) throws IOException {
super();
if (nodeAddresses.length == 0) throw new IllegalArgumentException();
this.serviceSocket = new ServerSocket(servicePort);
this.executorService = Executors.newCachedThreadPool();
this.nodeAddresses = nodeAddresses;
this.sessionAware = sessionAware;
// start acceptor thread
final Thread thread = new Thread(this, "tcp-acceptor");
thread.setDaemon(true);
thread.start();
}