private static void initFieldsOfAddresses()

in library/src/main/java/com/alibaba/dcm/internal/InetAddressCacheUtilForNew.java [281:307]


    private static void initFieldsOfAddresses() throws ClassNotFoundException, NoSuchFieldException {
        if (inetAddressesFieldOfInetAddress$CacheAddress != null) return;

        synchronized (InetAddressCacheUtilForNew.class) {
            if (inetAddressesFieldOfInetAddress$CacheAddress != null) return;

            ///////////////////////////////////////////////
            // Fields of InetAddress$CachedAddresses
            ///////////////////////////////////////////////
            Class<?> cachedAddresses_Class;

            try {
                cachedAddresses_Class = Class.forName(inetAddress$CachedAddresses_ClassName);
            } catch (ClassNotFoundException e) {
                // jdk 21 support
                cachedAddresses_Class = Class.forName(inetAddress$CachedLookup_ClassName);
            }

            final Field inetAddressesFiled = cachedAddresses_Class.getDeclaredField("inetAddresses");
            inetAddressesFiled.setAccessible(true);
            inetAddressesFieldOfInetAddress$CacheAddress = inetAddressesFiled;

            final Field expiryTimeFiled = cachedAddresses_Class.getDeclaredField("expiryTime");
            expiryTimeFiled.setAccessible(true);
            expiryTimeFieldOfInetAddress$CacheAddress = expiryTimeFiled;
        }
    }