gpt4 book ai didi

java - 在 Java 中使用路径和路径

转载 作者:搜寻专家 更新时间:2023-11-01 01:53:56 25 4
gpt4 key购买 nike

Path 和 Paths 之间的交互看起来很简单。您可以使用 Paths 的 get() 方法获取 Path 对象。然后,您可以使用 Path 的方法:

Path p = Paths.get("C:\\directory\\filename.txt");
p.getFilename();
p.getRoot();
p.getParent();
etc...

让我感到困惑的是,Java 文档将 Path 描述为一个接口(interface)。通常来说,接口(interface)只是方法签名的集合,您需要在任何声明通过 implements 关键字使用它的类中实现这些方法签名。

但是,在 Path 的情况下,没有使用“implements”关键字,您也没有实现这些方法。它们已经预定义。

我显然在某处弄错了方向。谁能解释一下我误解了什么?

最佳答案

OOP代入原理http://en.wikipedia.org/wiki/Liskov_substitution_principle

If S is a T, then references to T can be changed to references to S

在我们的例子中,这意味着 Paths 可以返回任何实现 Path 的类的实例。如果我打印实际的类名

System.out.println(p.getClass());

我会得到

class sun.nio.fs.WindowsPath

如您所见,这是 Windows 特定的 Path 实现。自然地,在 Linux 上我们会得到一些不同的东西。使用返回接口(interface)的静态工厂方法允许此方法更改此接口(interface)的实际实现。

关于java - 在 Java 中使用路径和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16435259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com