RFR: 8257512: Remove use of deprecated primitive constructors in JavaFX [v3]
Ambarish Rapte
arapte at openjdk.java.net
Thu Mar 11 06:04:09 UTC 2021
On Thu, 11 Mar 2021 00:26:38 GMT, Nir Lisker <nlisker at openjdk.org> wrote:
>> Ambarish Rapte has updated the pull request incrementally with one additional commit since the last revision:
>>
>> correct Float.valueOf()
>
> modules/javafx.controls/src/test/java/test/javafx/scene/control/ComboBoxTest.java line 643:
>
>> 641: ComboBox cb = new ComboBox();
>> 642: StringConverter sc = cb.getConverter();
>> 643: assertEquals("42", sc.toString(Integer.valueOf(42)));
>
> Autobox?
>From this test code the type of parameter of `sc.toString()` is not obvious.
`StringConverter` is a template class. `toString()` accepts a template type parameter.
Using autoboxing at such instances would hamper the readability.
So I think autoboxing should be used only when the type is very obvious from just a glance of code.
> apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SampleTableModel.java line 54:
>
>> 52: {Double.valueOf(567), Double.valueOf(956), Double.valueOf(1154)},
>> 53: {Double.valueOf(1292), Double.valueOf(1665), Double.valueOf(1927)},
>> 54: {Double.valueOf(1292), Double.valueOf(2559), Double.valueOf(2774)}
>
> Autobox?
The array is of type Object. When LHS is Object then autobox chooses a suitable type by itself.
So here, if we autobox then the values get autoboxed to `Integer`. We do not intend to change the test behavior as part of this fix so let's keep this as `Double.valueOf`.
-------------
PR: https://git.openjdk.java.net/jfx/pull/423
More information about the openjfx-dev
mailing list