code: public ZoneAwareLoadBalancer<T> buildDynamicServerListLoadBalancer() {
          if (serverListImpl == null) {
              serverListImpl = createServerListFromConfig(config, factory);
          }
          if (rule == null) {
              rule = createRuleFromConfig(config, factory);
          }
          return new ZoneAwareLoadBalancer<T>(config, rule, ping, serverListImpl, serverListFilter);
      }
docs: Build a {@link ZoneAwareLoadBalancer} with a dynamic {@link ServerList} and an {@link IRule}. The {@link ServerList} can be
  either set in the {@link #withDynamicServerList(ServerList)} or in the {@link IClientConfig} using {@link CommonClientConfigKey#NIWSServerListClassName}.
  The {@link IRule} can be either set by {@link #withRule(IRule)} or in the {@link IClientConfig} using
  {@link CommonClientConfigKey#NFLoadBalancerRuleClassName}.