如何让引用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()lenghtClassesCount() 之类的东西。

谢谢

【问题讨论】:

你必须为此编写自己的类加载器 【参考方案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和缺省这两个访问权限的根本区别,举例子

JAVA中,类的缺省访问范围是啥

eclipse里面default package

java里一个类中的方法的缺省属性是public or private?

java类中的成员缺省(默认的)的修饰符是啥??

java中public和缺省这两个访问权限的根本区别?