<i18n dev> RFR: JDK-8285932 Implementation of JEP 430 String Templates (Preview) [v46]

Jim Laskey jlaskey at openjdk.org
Thu Mar 23 14:42:27 UTC 2023


On Thu, 23 Mar 2023 12:12:36 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/StringTemplate.java line 679:
>> 
>>> 677:     @PreviewFeature(feature=PreviewFeature.Feature.STRING_TEMPLATES)
>>> 678:     @FunctionalInterface
>>> 679:     public interface StringProcessor extends SimpleProcessor<String> {
>> 
>> Just curious, what's the rationale of a `SimpleProcessor` or `StringProcessor` as opposed to:
>> 
>> static <T> TemplateProcessor<T, RuntimeException> simple(Function<StringTemplate, T> function) {...}
>> static TemplateProcessor<String, RuntimeException> string(Function<StringTemplate, String> function) {...}
>> 
>> which avoids the requirement of specifying the type of the template processor local variable; users can use `var` instead.
>
> Worth considering. Thank you.

You can, of course, reduce this to;


interface Processor {
 
    ...
    
    static <T> StringTemplate.Processor<T, RuntimeException> of(Function<StringTemplate, T> function) {
        return function::apply;
    }
    
    ...

}


since String is just a type. This proposal has merit and worth some thought. -2 interfaces, +1 method.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/10889#discussion_r1146303119


More information about the i18n-dev mailing list