gpt4 book ai didi

java - 为什么 java.io.FileSystem 是包私有(private)的?

转载 作者:搜寻专家 更新时间:2023-11-01 01:04:09 26 4
gpt4 key购买 nike

我遇到了这个类 java.io.FileSystem 并注意到它有许多我目前在我的项目中需要的方法。然而,该类是包私有(private)的,因此我正在使用反射访问所需的方法。

问题:

  1. 这个类被标记为包私有(private)有什么特别的原因吗?
  2. 通过反射访问它有什么危险吗? (也就是说,除了性能下降。)

最佳答案

  1. 这个类是包私有(private)的,因为 SUN(以及 Oracle)认为这个依赖于平台的类的方法将来可能会发生重大变化,因此不能直接访问。这个抽象类的所有实现都在本地代码中; Java 程序员不应该能够创建自己的。

  2. 通过反射使用隐藏类的最大危险不是性能,而是它的方法甚至整个类都可能在 JDK 的下一次升级中消失,无论多么小。好吧,非公共(public) API 是非公共(public)的;即使在维护版本中更改它们也是公平的游戏,因此如果您的程序在看似例行的 JDK 更新后停止工作,您只能责怪自己。

关于java - 为什么 java.io.FileSystem 是包私有(private)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10861896/

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