抽象多个java文件使用的相同导入调用

抽象多个java文件使用的相同导入调用,java,include,Java,Include,我熟悉Java,但我仍在尝试找出一些概念 假设我有FileA.java和FileB.java。两个文件在文件头使用相同的导入调用,例如: FileA.java: import java.util.Scanner; import java.io.*; {some code} FileB.java import java.util.Scanner; import java.io.*; {some code} 我在其他语言中看到过,当您有多个源代码文件使用的公共库时,您可以将其抽象为一个共享文

我熟悉Java,但我仍在尝试找出一些概念

假设我有FileA.java和FileB.java。两个文件在文件头使用相同的导入调用,例如:

FileA.java:

import java.util.Scanner;
import java.io.*;
{some code}

FileB.java

import java.util.Scanner;
import java.io.*;
{some code}
我在其他语言中看到过,当您有多个源代码文件使用的公共库时,您可以将其抽象为一个共享文件,然后可以在源代码文件中调用该文件,从而帮助减少维护,并且必须多次重新键入它们。因此,对于上面的示例,我们可以做如下操作:

Common.lib:

import java.util.Scanner;
import java.io.*;

FileA.java:

include Common.lib;
{some code}


FileB.java:
include Common.lib;
{some code}
因此,我有以下问题,如果有人能澄清,我将不胜感激,因为我承认我对这个话题一无所知:

  • 这在Java中可行吗
  • 这是一个好主意/最佳实践吗?是/否为什么
  • 如果这不是一个好的实践,那么如何处理必须为使用相同导入头的每个java文件键入相同导入头的问题

  • 遗憾的是,这在Java中是不可行的

    这在Java中可行吗

    没有

    这是一个好主意/最佳实践吗?是/否为什么

    如果不求助于像预处理器这样的东西,它是不可行的。。。这使得它成为一个非Java解决方案,而且肯定不是“最佳实践”

    如果这不是一个好的实践,那么如何处理必须为使用相同导入头的每个java文件键入相同导入头的问题

    我通过使用IDE来处理它,IDE允许我在不想查看导入语句时隐藏它们。即使在过去,当我使用哑(-ish)文本编辑器编写Java时,我也从未发现这是一个重大问题。(但话说回来,在经历了30多年的专业编程和20多种不同的编程语言之后,我已经学会了容忍轻微的语法问题。)


    如果你看看James Gosling&Henry McGilton的早期作品,你会发现排除#include(和typedef)的优点之一如下:

    “通过消除所有这些包袱,Java变得非常自由。程序员可以阅读和理解代码,更重要的是,修改和重用代码更快更容易。”


    换句话说,您不必在错综复杂的include文件中导航,就可以找出主源文件中给定的标识符所指的内容。这些信息都在类源文件中(假设您不使用
    *
    imports…我不使用导入)。

    感谢Stephen C的详细说明/回答。您完全理解我的问题和顾虑。可能重复