On Sat, 29 Oct 2022 00:56:18 GMT, ExE Boss <d...@openjdk.org> wrote: >> src/java.base/share/classes/java/lang/template/StringTemplate.java line 323: >> >>> 321: * @throws NullPointerException fragments or values is null or if >>> any of the fragments is null >>> 322: */ >>> 323: public static String interpolate(List<String> fragments, >>> List<Object> values) { >> >> This method also exists has a static method, having both is a bad idea >> because it makes StringTemplate::interpolate a compile error, the compiler >> has no way to know that it's the same implementation. > > Actually, `StringTemplate::interpolate` is fine, as this method takes two > parameters, whereas the instance method only takes an implicit `this` > parameter. > > The instance method is only assignable to `Function<StringTemplate, String>` > or `Supplier<String>`, and the static method is only assignable to > `BiFunction<List<String>, List<Object>, String>`.
Ok, get it. I still see not reason to have this method being public given that this is equivalent to `Template.of(fragments, values).interpolate()`. The less methods in the API, the better. ------------- PR: https://git.openjdk.org/jdk/pull/10889