如何让引用java缺省包的类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让引用java缺省包的类相关的知识,希望对你有一定的参考价值。
如何引用java缺省包的类 或者说java缺省包中的类的全名是什么
默认包(即缺省包)的类没有包名, 在被有包结构的类引用时,会被当成本包内的类,所以并不可以引用。但是不管有没有import缺省包的类,在代码中进行调用都是不会成功的。
在java 1.2, 1.3时,是可以从包中引用缺省包中的类 的,但java 1.4之后就不行了:Java 1.4兼容文档 中有说明,并建议把所 有在未命名的名字空间(默认包)中的类放到某个命名空间中。
可以说,这是java处于安全性的考虑吧。 参考技术A 一个类缺省是继承于Object类,
自然缺省的包就是Object类所在的那个包咯。
即java.lang.*本回答被提问者和网友采纳 参考技术B 不能,你还是把那几个类随便放进个包吧.缺省是在那些包同一个目录下.就是没有包名的 参考技术C 所有JAVA的类都默认引入了 java.lang.*
那下面的包,,自己去api文档看去。 参考技术D java.util.*
我如何知道给定包的类[重复]
【中文标题】我如何知道给定包的类[重复]【英文标题】:How can I know the classes of a given package [duplicate] 【发布时间】:2013-12-08 12:01:53 【问题描述】:给定一个 java 语言的包,我想知道它包含多少个类以及它们的列表(这些类的列表)。
我可以使用myClass1.class.getPackage()
访问我的包,但在此之后我没有有类似getClasses()
或size()
或lenght
或ClassesCount()
之类的东西。
谢谢
【问题讨论】:
你必须为此编写自己的类加载器 【参考方案1】:看看reflections 库,它可能可以轻松实现这一目标:
Reflections reflections = new Reflections("my.project.prefix");
Set<Class<? extends SomeType>> subTypes =
reflections.getSubTypesOf(SomeType.class);
我猜你可以使用Object
代替SomeType
,因为 Object 是 java 中所有类的超类:
Set<Class<? extends Object>> allClasses =
reflections.getSubTypesOf(Object.class);
【讨论】:
【参考方案2】:在 Java 中,类是动态加载的。所以根本没有办法做你想做的事;虚拟机本身并不知道包中类的完整列表。
【讨论】:
但是当我在编程并且我在写点之后写myPackage.
时(。)我有所有类的列表,但当我写myClass.class,getPackage()
时没有@
对。你的开发环境知道所有的类是什么;它必须这样做,因为它需要编译它们。但是,除非您明确将其放入,否则程序本身无法获得此信息。【参考方案3】:
这方面已经有很多问题和答案了, 你可以点击这些链接
a)How to get all classes names in a package?
b)How can I list all classes loaded in a specific class loader
c)Can you find all classes in a package using reflection?
【讨论】:
对不起,我看到第一个和第二个不完全像我的,但最后一个是。该怎么办?我应该删除问题吗? @RiadSaadi 我认为你不应该删除这篇文章中已经有很多有用的专家cmets。 @SantoshJoshi 正如你所知,这是其他问题的重复,所以你不应该发布作为答案。 但是在规定中,出现重复的情况怎么办? @RiadSaadi,如果您认为您的问题是重复的,请继续删除它。我也是一个回答者,但我不应该回答在其他地方已经完成并且比我更好的问题。以上是关于如何让引用java缺省包的类的主要内容,如果未能解决你的问题,请参考以下文章
java中public和缺省这两个访问权限的根本区别,举例子