当前位置: 首页 > 面试题库 >

Java包导入别名

蒋向笛
2023-03-14
问题内容

在Java中是否可以导入软件包并为该软件包导入一个特定的名称?

我目前有一个类,它使用来自后端的一些DTO和服务包。在这两个软件包中,DTO的名称相同。我认为这不太可读:

com.backend.mypackage.a.b.c.d.UserDto userBackend = new com.backend.mypackage.a.b.c.d.UserDto();
com.service.mypackage.a.b.c.d.UserDto userService = new com.service.mypackage.a.b.c.d.UserDto();

mapper(userBackend, userService);

这是一个小例子。该类实际上非常复杂,并且其中包含更多代码。

Java是否有类似的东西,import com.backend.mypackage.a.b.c.d.UserDto as userDtoBackend以便我可以缩短源代码?


问题答案:

不,您不能“将x导入为y”;在Java中。

您可以做的是扩展该类,或为其编写包装类,然后导入该包装类。

import com.backend.mypackage.a.b.c.UserDto;

public class ImportAlias {
    static class UserDtoAlias extends com.backend.mypackage.a.b.c.d.UserDto {
    }

    public static void main(String[] args) {
        UserDto userBackend = new UserDto();
        UserDtoAlias userService = new UserDtoAlias();

        mapper(userBackend, userService);
    }

    private static void mapper(UserDto userBackend, UserDtoAlias userService) {
        // ...
    }
}


 类似资料:
  • 在用java打印任何语句之前,我们是否需要将任何包导入到java文件中?当我在编译器上运行这段代码时,它什么也没有显示。

  • 问题内容: 如何从包中将方法导入另一个程序?我不知道如何导入…我写了一个lil’代码: 然后将其保存在名为“ Dan”的文件夹中,然后进行编译。.class文件已生成。然后,我在下面编写了这段代码: 然后将其保存在“ Dan”文件夹之外,并显示:“找不到符号” 我将第一个代码保存在C:\ Dan \ Vik.java中,将第二个代码保存在C:\ Kab.java中 问题答案: 您不使用Java导入

  • 下面是我试图导入的一个示例 所有类都显示一个错误。当我进入java JDK的安装位置并查看文件时,我在其中看到了所有这些类,那么如何使它们工作呢?

  • 问题内容: 在Java中,我们既可以导入单个类,也可以导入整个类集(一个包)。 举个例子 包括 除了代码的长度之外,以任何方式使用每种方法是否有特定的优势?内存分配?性能? 问题答案: 两者都没有性能或内存分配优势,它们都将编译为相同的字节码。 该语句是告诉编译器在哪里可以找到源代码所引用的类。 但是,仅按类导入有一个优势。如果在两个包中有一个名称完全相同的类,则在引用哪个类时就会发生冲突。 类和

  • 问题内容: 在我的Java程序中,我已经在一个类中导入了一些Java包。但在那里有1或2个包装被划掉。 为什么会这样?如何解决这种交叉使之交叉? 问题答案: 这些类标记为。 这意味着编译器建议不要使用它们,因为它们会给您带来问题。 注释为@Deprecated的程序元素是不鼓励程序员使用的元素,通常是因为这样做很危险,或者因为存在更好的替代方法。当在不推荐使用的代码中使用或覆盖不推荐使用的程序元素

  • 我遇到了一个Java类的问题,它不停地告诉我,我试图导入的包不存在,但正如您所看到的,包存在。包名为,它存在于文件夹中。