RFR: 8301302: Platform preferences API [v5]

Andy Goryachev angorya at openjdk.org
Tue Sep 5 23:34:06 UTC 2023


On Tue, 5 Sep 2023 23:07:03 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> modules/javafx.graphics/src/main/java/com/sun/javafx/application/preferences/PlatformPreferences.java line 112:
>> 
>>> 110:         }
>>> 111: 
>>> 112:         throw new IllegalArgumentException(
>> 
>> should this behavior be documented?
>> there is no mention of an exception in case of type mismatch in the base class.
>> 
>> also, do we want to have some kind of trivial conversion implemented such as int -> long -> double ?  
>> or not?
>
> It is documented in the `Platform.Preferences` interface, which is implemented by this class:
> 
> 
>         /**
>          * Returns the value to which the specified key is mapped.
>          *
>          * @param <T> the type of the value
>          * @param key the key
>          * @param type the type of the value
>          * @throws NullPointerException if {@code key} is null
>          * @throws IllegalArgumentException if the key is not mapped to a {@code type} instance
>          * @return the value to which the key is mapped, or {@code Optional.empty()}
>          *         if no mapping exists for the specified key
>          */
>         <T> Optional<T> getValue(String key, Class<T> type);
> 
> 
> I'm a bit hesitant regarding an automatic conversion. What would be the use case for this?

one [possible] use case is when different versions of the native platform have different types (int32/int64 ?).
or, if the property value is String with the semantics of an integer.

Of course, the app dev can always request an Object and parse that.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1316515202


More information about the openjfx-dev mailing list