On Thu, 23 May 2024 09:05:09 GMT, Aleksey Shipilev <[email protected]> wrote:
>> Alternatively, if a utility method is overkill, we can inline these to
>> `Executable`:
>>
>> public Class<?>[] getParameterTypes() {
>> var shared = getSharedParameterTypes();
>> return shared.length == 0 ? shared : shared.clone();
>> }
>>
>> And the overrides in `Method` and `Constructor` will simply call super; the
>> declarations are kept to preserve the API documentation.
>
> I had to read JLS to confirm that changing the `abstract` method to
> non-abstract one does not break compatibility.
>
> I am still thinking that we are overthinking this: the
> readability/maintainability benefits for introducing a one-liner utility
> method are slim at best. I believe we are spending the disproportionate time
> on this. So if we cannot agree where to put the utility method -- which
> implies there is no good place for it -- let's not do it at all. Inline the
> ternary selector in 4 affected places, and be done with it.
I've reverted to ternary logic.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19327#discussion_r1611628951