intellij avoid import with code examples

As a developer, you might have faced an issue with imports in your project while working with large codebases. Having too many imports, oftentimes feels unnecessary and can be laborious for any developer. Sometimes, the code even becomes unreadable due to a clutter of the imports. Fortunately, IntelliJ provides best practices and tools to avoid importing unnecessary files and help keep your code as clean and readable as possible.

In this article, we'll be discussing ways on how to avoid importing unnecessary files in IntelliJ, showing examples of how to implement these best practices.

  1. Import Only What You Need

When working with larger Java projects, we may have several packages. It is good practice to only import the classes that are needed in a given file instead of importing the entire package. One of the many ways to do so is by using wildcard imports. While wildcard imports (*) could import multiple classes from the package, it's best to import the classes that are necessary rather than everything unless the required classes are unavoidably too many.

For example, Instead of using wildcard imports, let's say we need to import only two classes, "java.util.List" and "java.util.ArrayList":

import java.util.List;
import java.util.ArrayList;
  1. Organize Imports

When working with larger Java projects, it can be problematic to have multiple imports in a single file. It makes the file unnecessarily unwieldy and confusing. Therefore, IntelliJ provides an option of organizing imports by removing unused ones, adding the missing ones, and grouping them primarily.

You can hit 'Ctrl + Alt + O' or use the 'Code > Optimize Imports' menu, or IntelliJ will automatically suggest organizing imports.

  1. Auto-Import Missing Classes

It can be time-consuming to search for classes and files manually while writing code. IntelliJ provides an "Auto-Import" feature that can automatically add the missing import statement to the current file from the classes that are not yet imported within your project.

For instance, when we require importing java.util.Scanner, IntelliJ offers a handy solution by suggesting the import of Scanner automatically.

  1. Use IntelliJ Shortcuts

IntelliJ provides a variety of shortcuts to help you stay productive. One such shortcut is "Ctrl+Alt+Space", which can be used to suggest potential classes or methods for the written code and helps with choosing the necessary imports automatically. For example, this is handy when you are not sure about the exact package or class to import.

  1. Exclude Classes from Auto-Import

In some cases, you have some specific classes that you never want to import automatically. Examples of such classes are those that conflict with other identical classes or cause errors and create confusion while coding. You can exclude classes that you don't want to import automatically by adding them to the 'File > Settings > Editor > General > Auto Import > Exclude from Import and Completion' configuration.

For example, if you want to disable the auto-import of the "sun.misc.Unsafe" class, you would make the following in IntelliJ configuration:



In IntelliJ, there are numerous ways to avoid importing unnecessary files that not only improve code readability but also make it more efficient. By using best practices like importing only what is needed, organizing imports, utilizing shortcuts, and excluding some classes, developers can save time and be more productive when creating their projects. Before you start coding, verify that you're using the latest IntelliJ version to take advantage of all of its features and enhancements.

here are some additional details about the previous topics covered:

  1. Import Only What You Need: One of the biggest advantages of importing only the necessary classes is the reduced overhead that it brings to the project, as it results in a smaller compiled file size. Importing the whole package will import all the classes, including those that are not even necessary for the current file, making the project less efficient. Furthermore, it also makes the code easier to read by highlighting the specific classes that are necessary for the implementation.

  2. Organize Imports: IntelliJ's Organize Imports feature enables you to remove the unused imports automatically, which is helpful in keeping the code neat and tidy. Additionally, it groups the imports into sections such as standard and third-party packages, making it easy to differentiate between the two. The feature also adds line breaks, providing an improved view of the current file.

  3. Auto-Import Missing Classes: Using IntelliJ's Auto-Import feature will result in reducing the amount of time developers spend searching through imported packages and classes. It is helpful when working with unfamiliar packages or when the code needs to be implemented quickly. Developers should, however, be cautious when accepting IntelliJ's suggestions since it might cause issues when you still have unimported classes in your project.

  4. Use IntelliJ Shortcuts: IntelliJ's shortcuts are a time-saving tool that improves productivity. Developers can learn and use shortcuts to save time and avoid clicking through different menus, making it easier to find options. IntelliJ offers many shortcuts, and developers can customize them to create an optimized workflow that works best for them.

  5. Exclude Classes from Auto-Import: When working with complex projects, conflicts between classes may arise. Developers can exclude some classes from the auto-import feature to avoid these issues. It is worth noting that excluding classes from the auto-import feature will not affect the project's functionality, but can significantly affect the development experience since IntelliJ won’t auto-suggest the excluded classes you have set.

Overall, using IntelliJ to avoid importing unnecessary files and classes results in more efficient codebase and a better user experience for developers. By familiarizing yourself with the best practices and tools that IntelliJ provides, developers can create better code more efficiently and have more time to focus on other aspects of the project.

Popular questions

  1. Why is it important to avoid importing unnecessary files in IntelliJ?

Importing unnecessary files results in a large compiled file size, making the project less efficient. It also reduces code readability, making it harder for developers to navigate and debug. Additionally, it can cause conflicts between identical classes, affecting the project's functionality.

  1. What is the benefit of using wildcard imports in IntelliJ?

Wildcard imports allow the import of multiple classes from the package, making it an efficient way of importing packages with many classes. However, importing only the necessary classes results in smaller compiled file sizes and reduces the possibility of conflicts.

  1. How does IntelliJ's "Auto-Import" feature work?

IntelliJ's Auto-Import feature automatically adds the missing import statement from the classes that are not yet imported within the project. It is a helpful feature that saves time and makes code implementation easier, especially when working with unfamiliar packages.

  1. Why is it important to organize imports in IntelliJ?

Organizing imports makes code neater, more efficient, and easier to read. IntelliJ's Organize Imports feature groups imports by their origin in sections such as standard and third-party packages. It also removes unused imports, making the code cleaner and more efficient.

  1. What are some of the benefits of using IntelliJ shortcuts?

IntelliJ's shortcuts are time-saving, enabling developers to navigate the software with greater speed and efficiency. They provide an optimized workflow, making it easier for developers to find options and make modifications. Additionally, developers can customize shortcuts to their requirements, improving their productivity while using IntelliJ.



As a seasoned software engineer, I bring over 7 years of experience in designing, developing, and supporting Payment Technology, Enterprise Cloud applications, and Web technologies. My versatile skill set allows me to adapt quickly to new technologies and environments, ensuring that I meet client requirements with efficiency and precision. I am passionate about leveraging technology to create a positive impact on the world around us. I believe in exploring and implementing innovative solutions that can enhance user experiences and simplify complex systems. In my previous roles, I have gained expertise in various areas of software development, including application design, coding, testing, and deployment. I am skilled in various programming languages such as Java, Python, and JavaScript and have experience working with various databases such as MySQL, MongoDB, and Oracle.
Posts created 3251

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top