- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试搜索如何从 Java 包内访问不在指定包内的文件,但无法找到答案。有谁知道怎么做吗?
最佳答案
如果您的意思是要从命名包访问默认(未命名)包中的 CLASS,则不能。 JLS 是这样说的:
"A type in an unnamed package (§7.4.2) has no canonical name, so the requirement for a canonical name in every kind of import declaration implies that (a) types in an unnamed package cannot be imported, and (b) static members of types in an unnamed package cannot be imported. As such, §7.5.1, §7.5.2, §7.5.3, and §7.5.4 all require a compile-time error on any attempt to import a type (or static member thereof) in an unnamed package. "
这意味着您不能使用单一类型导入。并且“通配符”导入将不起作用,因为您无法命名该包。
是的,您可以通过使用反射来解决此限制,但它非常麻烦,并且会使您的代码缓慢且脆弱。如果您想了解 Java 中的反射,请从这里开始 - http://docs.oracle.com/javase/tutorial/reflect/index.html 。但这不是很好地解决这个“问题”吗?
正确的解决方案是使用包...正如 Java 语言设计者的意图。 JLS 是这样说的:
"Unnamed packages are provided by the Java SE platform principally for convenience when developing small or temporary applications or when just beginning development."
这意味着您应该仅将未命名的包用于小型/临时应用程序(或作为权宜之计),并转向使用命名包来处理任何严重的问题。
<小时/>如果您的意思是要访问未命名包中的文件(例如资源),那么您只需在资源名称前面加上斜杠即可;例如
InputStream is = classLoader.getResourceAsStream("/someresource");
关于java - 如何在 Java 中从包内访问不在包内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087141/
我是一名优秀的程序员,十分优秀!