Hi Remi,

Catching up on email, at least to my eye, the current version is easier to read than the proposed refactoring in both cases.

I wouldn't expect this code to be performance critical so I'm inclined to leave the code as-is unless a performance motivation is found.

Thanks for the comments,

-Joe

On 1/16/2019 1:21 AM, Remi Forax wrote:
Hi Joe,
in j.l.Class, in methodToString, can you change
   sb.append(getName() + "." + name + "(");
to
   sb.append(getName()).append(".").append(name).append('(');
because using the concatenation inside a StringBuilder creates another 
StringBuilder (java.lang doesn't use the StringConcatFactory).

also
   return typeVar.getName() + " extends " +
          Arrays.stream(bounds)
                .map(Type::getTypeName)
                .collect(Collectors.joining(" & "));
can be written
   return Arrays.stream(bounds)
                .map(Type::getTypeName)
                .collect(Collectors.joining(" & ", typeVar.getName().concat(" extends "), 
""));
which also avoid the creation of an intermediary StringBuilder (at the cost of 
the code being less readable).
(in that case, you have also to change the same code in Executable).

regards,
Rémi

----- Mail original -----
De: "joe darcy" <joe.da...@oracle.com>
À: "Stuart Marks" <stuart.ma...@oracle.com>
Cc: "core-libs-dev" <core-libs-dev@openjdk.java.net>
Envoyé: Mercredi 16 Janvier 2019 04:05:05
Objet: Re: JDK 13 RFR of JDK-8217000: Refactor Class::methodToString
Good catch on the 3-argument joining in this case; I'll push with that
amendment.

Thanks for the review,

-Joe

On 1/15/2019 3:19 PM, Stuart Marks wrote:

On 1/14/19 7:41 PM, Joe Darcy wrote:
PS And for good measure, made analogous changes in Executable.java:

      http://cr.openjdk.java.net/~darcy/8217000.1/
Thanks for following up on this. Overall, looks good. One point:

  114             sb.append('(');
  115
  116             sb.append(Arrays.stream(parameterTypes)
  117                       .map(Type::getTypeName)
  118                       .collect(Collectors.joining(",")));
  119
  120             sb.append(')');

I think you can use the 3-arg form of joining() here, since the prefix
and suffix are included even if the stream is empty.

s'marks

Reply via email to