docs: @Override
  	public String getString() {
  		String result = cachedString;
  		if(result == null) {
  			synchronized(this) {
  				result = cachedString;
  				if(result == null) {
  					if(isSinglePrefixBlock() || !isMultiple()) { //covers the case of !isMultiple, ie single addresses, when there is no prefix or the prefix is the bit count
  						result = getDefaultLowerString();
  					} else if(!isFullRange() || (result = getDefaultSegmentWildcardString()) == null) {
  						if(isPrefixBlock()) {
  							result = getDefaultMaskedRangeString();
  						} else {
  							result = getDefaultRangeString();
  						}
  					}
  					cachedString = result;
  				}
  			}
  		}
  		return result;
  	}