In Vb.net, we have something called a “Module” that provides a global scope whereby static functions in the module is visible throughout the entire project.
Is there such a functionality in Java ? (i.e. adding static methods that are available to multiple packages/files/classes without having the need to import .* )
Ok I am aware this is a functionality that would cause alot of debate, but really the point of this thread is not to debate about this functionality.
To answer literally, no, there’s no real “global” in Java. But you don’t need to import, particularly not
import .*.The code below illustrates that an import is not required but it’s only really part of the answer.
In Java, types, such as classes and interfaces, are defined in terms of the
ClassLoaderwhich loaded them. You can have multiple class loaders, which implies that multiple copies of the same class can be loaded. The obvious extension of this is that multiple classes with the same qualified name (package + class) can be loaded, and there’s no inherent requirement that they are related.OSGi is an example of this, where each bundle has it’s own class loader, and as a result you can have multiple versions of the same class loaded at the same time.
How does this relate to the question? Well, without accurately identifying the class you want to reference it’s not possible to accurately identify the method or member you want to reference. The import, or FQN referencing does that.