例如,如果我想排除加载java.lang.String,我该怎么做呢?
答案 0 :(得分:5)
编写自己的编译器,可以编译这种新的,几乎是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.