@Override
    public String toString() {
        StringBuilder bld = new StringBuilder();
        bld.append("ListenerInfo(");
        String prefix = "";
        for (Endpoint endpoint : listeners.values()) {
            bld.append(prefix).append(endpoint);
            prefix = ", ";
        }
        bld.append(")");
        return bld.toString();
    }
Create a new ListenerInfo object where ephemeral ports are populated with their true runtime
values.

In other words, if a port was set to 0, indicating that a random port should be assigned by the
operating system, this function will replace it with the value the operating system actually
chose.

@param getBoundPortCallback  The callback used to correct ephemeral endpoints.

@return A new ListenerInfo object.
metadata/src/main/java/org/apache/kafka/metadata/ListenerInfo.java