gpt4 book ai didi

java - 符号 "BasicFileAttributes.class "在java7中意味着什么?

转载 作者:行者123 更新时间:2023-11-29 03:41:30 26 4
gpt4 key购买 nike

代码如下

Path file = ...;
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());


在链接处 http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html ,他们说 BasicFileAttributes 是一个类。但是链接http://docs.oracle.com/javase/7/docs/api/java/nio/file/attribute/BasicFileAttributes.html称之为接口(interface)。(如果你知道请清除这个混淆,虽然这不是主要问题)

主要问题:
我无法理解 BasicFileAttributes.class 参数。他们是否试图将一个类作为参数传递?

最佳答案

BasicFileAttributes被定义为一个接口(interface),因为它指定了行为(在本例中,文件属性信息的访问器方法),并且有子类以实现定义的方式提供此行为。文档页面将 DosFileAttributesPosixFileAttributes 列为已知的子类。

接口(interface)可以用作声明的类型以保持基本行为契约相同。换句话说,当我有一个 BasicFileAttributes 对象时,我不知道它到底是一个 DosFileAttributes 还是一个 PosixFileAttributes,并且我不在乎。我只关心我可以调用任何 BasicFileAttributes 方法并获得我期望的结果。

至于Files.readAttributes方法,是的,您正在传入一个类。在这种情况下,您可以使用 BasicFileAttributes.class 获取基本文件属性,也可以传入其子类之一并获取特定于平台的属性信息(如果您要求的属性在您的平台上不存在,则有不得不处理 UnsupportedOperationException 的风险)。

关于java - 符号 "BasicFileAttributes.class "在java7中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900219/

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