在Scala中使用import scala.reflect.io.File或java.io.File更好吗?

Phi*_*hil 7 scala file

我看到了scala.reflect.io.File类,这应该有助于文件操作吗?我应该更喜欢使用它而不是java.io.File吗?这堂课的目的是什么?

som*_*ytt 9

java.nio.file当然,你也不应该使用它.

如果您想使用花哨的运算符"增强"该API,请使用扩展方法.该代码的作者在邮件列表上也说了很多.被困在Java 6上被认为是不幸的.

您指向的包被拉入scala-reflect.jar支持反射,但是关于其不受支持的状态的警告无处不在.

AbstractFile所使用的抽象Position,其具有源文件.你从中得到的"文件"是一个java.io.File,但AbstractFile有工厂方法采用reflect.io.Path抽象(带FileDirectory子类型).所以所有代码仍然打包在一起.

我必须每次都停下来思考AbstractFileFile跨越我的道路(双关语警报).我曾经有一件紫色的" AbstractFile是,就像,与FileT恤完全不同",但它却多次洗涤.

在背面它说," Position与此无关io.Position."

这是触及的警告api.Position,当然它在scaladoc中面向用户; 注意它说它是一个"Java文件":

  /** Java file corresponding to the source file of this position.
   *
   *  The return type is `scala.reflect.io.AbstractFile`, which belongs to an experimental part of Scala reflection.
   *  It should not be used unless you know what you are doing. In subsequent releases, this API will be refined
   *  and exposed as a part of scala.reflect.api.
   *
   *  @group Common
   */
  def source: scala.reflect.internal.util.SourceFile
Run Code Online (Sandbox Code Playgroud)

为了回答你的第一个问题,我认为可以肯定地说,是的,它应该有所帮助.