令我大为惊讶的是,在jdk1.8.0_u144上,以下代码片段会打印出
false
。public class Tmp {
public static void main(String[] args) {
File f = new File(".");
boolean result = f.toPath().toUri().toString().equals(f.toURI().toString());
System.out.println("result = " + result);
}
}
显然,java.io.File#toURI
和java.nio.Path#toUri
返回不同的表示方式。问题是,哪个是正确的(根据RFC 8089)?