presto-plugin-toolkit/src/main/java/io/prestosql/plugin/base/util/LoggingInvocationHandler.java/LoggingInvocationHandler/AirliftParameterNamesProvider
class LoggingInvocationHandler:        public <I, C extends I> AirliftParameterNamesProvider(Class<I> interfaceClass, Class<C> implementationClass)
        {
            requireNonNull(interfaceClass, "interfaceClass is null");
            requireNonNull(implementationClass, "implementationClass is null");

            ImmutableMap.Builder<Method, List<String>> parameterNames = ImmutableMap.builder();
            for (Method interfaceMethod : interfaceClass.getMethods()) {
                tryGetParameterNamesForMethod(interfaceMethod, implementationClass)
                        .map(ImmutableList::copyOf)
                        .ifPresent(names -> parameterNames.put(interfaceMethod, names));
            }
            this.parameterNames = parameterNames.build();
        }