RFR - JDK-8203444 String::formatted (Preview)

Jim Laskey james.laskey at oracle.com
Tue May 21 14:52:03 UTC 2019


All discussion is valid. I agree the ambiguity is tricky, but can be resolved by using explicit locale.

Example:

	"%s".formatted(Locale.getDefault(), Locale.JAPAN);

This guarantees the "public String formatted(Locale l, Object... args)" form is chosen with the second Locale as an argument.

Cheers,

-- Jim






> On May 21, 2019, at 11:42 AM, Florian Weimer <fweimer at redhat.com> wrote:
> 
> * Jim Laskey:
> 
>> Please do a code review of the new String::formatted instance method. This method was originally introduced under the name "format"
>> in conjunction with Raw String Literals. The method is being reintroduced in conjunction with Text Blocks and renamed to avoid method
>> resolution conflicts against the static method String::format.
>> 
>> Example of use:
>> 
>>    String name = "Smith, Pat";
>>    String address = "123 Maple St., Anytown, Anywhere";
>>    String phone = "999-555-1234";
>>    String client = """
>>                    Name: %s
>>    Address: %s
>>    Phone: %s
>>                    """.formatted(name, address, phone); 
> 
> I'm a bit concerned by the ambiguity between the version with and
> without the Locale argument.  Not sure if this is the kind of feedback
> you are looking for.
> 
> (String::format does not have this ambiguity and had been able to avoid
> it easily, so it's not a good guide here.)
> 
> Thanks,
> Florian



More information about the compiler-dev mailing list