Java:如何排除java.lang类的隐式导入

时间:2018-01-26 16:37:51

标签: java java.lang

例如,如果我想排除加载java.lang.String,我该怎么做呢?

2 个答案:

答案 0 :(得分:5)

编写自己的编译器,可以编译这种新的,几乎是Java的语言。

Java,

  

编译单元中的代码自动访问其包中声明的所有类型,并自动导入预定义包java.lang中声明的所有公共类型。

无法禁用该行为。而你并不需要; import仅影响编译,即使某个类型(不明智地)与java.lang类型相同,如Object,也可以在源代码中使用其完全限定名称引用它。

答案 1 :(得分:0)

你混淆了两个主题。

标题为“如何排除java.lang类的隐式导入”,并在正文中询问“排除加载java.lang.String”。

java.lang.*的自动导入对运行时无任何影响。它只允许您在编译时使用简单的单词String而不是点构造java.lang.String来引用字符串。

当{且仅当您的代码需要时,将加载<{>}课程,无论您是将其引用为java.lang.String还是String。源代码。

我非常确定每个Java程序都需要String类,例如在java.lang.String以及许多库类中。

因此,如果您担心内存占用太多以至于加载String类可能会成为一个问题,请切换到另一种语言,例如20世纪70年代的K&amp; R C.