基本的に次のスニペットを試してみると、ClassCastException が発生します。
public static void main (String []args)
{
Path path = Paths.get((System.getProperty("user.home")), "Desktop","usnumbers.txt");
try {
Integer size = (Integer)Files.getAttribute(path, "basic:size", NOFOLLOW_LINKS);
System.out.println("Size: " + size.toString());
} catch (IOException e) {
System.err.println(e);
}
}
}
でキーワードを変更すると修正されInteger
ますLong
。ドキュメントを確認したFiles.getAttribute(...)
ところ、Long ではなく Object が返されます。さらに、常に同じページで、このメソッドの使用法を説明している間、実際には Object のキャストに Integer キーワードを使用しています。これは、それを説明する公式のOracleドキュメントのリンクです。メソッドの使用法と同じリンクから直接:
使用例: 「unix」ビューをサポートするシステムで、ファイル所有者のユーザー ID が必要であるとします。
Path path = ... int uid = (Integer)Files.getAttribute(path, "unix:uid");