Ping - Re: RFR 8078812, Test RMI with client and servers as modules
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon May 23 22:34:49 UTC 2016
On 05/23/2016 02:31 PM, Stuart Marks wrote:
> On 5/20/16 4:59 PM, Jonathan Gibbons wrote:
>> While I would agree on the use of one type, not two, for file paths,
>> I would
>> question the choice to use String instead of Path. If something is a
>> file path,
>> use the type system to say so, and use a Path.
>
> Sure, either way will work. I had started with String because the data
> originates as strings, either from system properties or from string
> literals.
>
> I switched things around to see what things looked like, starting with
> Path and converting to String as necessary. Basically I declared the
> constants using Paths.get(). This meant fileJoin() could disappear,
> since Paths.get() can concatenate multiple elements.
>
> Paths.get() disappeared from several places inline, and was replaced
> with a chain of calls to resolve() in a couple others. I had to add
> toString() in a few places as well.
>
> The pathJoin() helper had to change a bit though. Formerly it
> concatenated strings with File.pathSeparator; now it has to convert
> Path objects to strings before doing so. The easiest way to do this
> was to use a short stream:
>
> static String pathJoin(Path... paths) {
> return Arrays.stream(paths)
> .map(Path::toString)
> .collect(Collectors.joining(File.pathSeparator));
> }
>
> Overall I'd say six of one, half a dozen of the other.
>
> s'marks
Yes, and the example is small enough that maybe six of one really does
balance half a dozen of the other. But as a general matter of style, I
think it is preferable to use Path when you really want paths.
That being said, it would be nice to have a method on the Paths API to
create a search path from a series of Path objects. (your pathJoin method)
-- Jon
More information about the jigsaw-dev
mailing list