Java包导入别名[重复]

     2023-02-22     249

关键词:

【中文标题】Java包导入别名[重复]【英文标题】:Java Package Import Alias [duplicate] 【发布时间】:2015-05-30 04:02:34 【问题描述】:

在 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 这样我可以缩短我的源代码?

【问题讨论】:

我认为给不同的类,不同的名字会简单得多。 ;) 即不要给类起别名,而是重命名它们。 【参考方案1】:

不,你不能做“import x as 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) 
        // ...
    

【讨论】:

是的,这绝对是一种方式。但是,如果您有超过 100 个 dto,则不适合为每个单独实现这样的包装类。 没错。但是如果你用同样的方法操作超过 100 个 DTO:s,你可能还有其他问题需要先解决:) 你是个小天才! :) 这不是一个好方法。这可能是大量需要不断更新的工作,并且难以解决静态方法。而且,例如,如果您将 xml 反序列化/序列化为 jaxb 生成的类,它将根本不起作用(或任何其他形式的反序列化)。 是的,我同意。这不是解决他的问题的好方法,但这是做他想做的事情的一种方式。我不宽恕这一点。【参考方案2】:

在 Java 中没有办法做到这一点。

【讨论】:

有些东西在java中不仅仅有意义:(

导入包。*与导入包。特定类型 [重复]

】导入包。*与导入包。特定类型[重复]【英文标题】:Importpackage.*vsimportpackage.SpecificType[duplicate]【发布时间】:2010-09-1607:00:18【问题描述】:是否会假设在编写导入加载一个包中的所有类型的开销方面有任何差异(importjava.*);... 查看详情

完整包导入.*和指定类导入java之间的区别? [复制]

】完整包导入.*和指定类导入java之间的区别?[复制]【英文标题】:Differencebetweencompletepackageimport.*andspecifiedclassimportjava?[duplicate]【发布时间】:2012-01-1403:36:15【问题描述】:可能重复:WhyisusingawildcardwithaJavaimportstatementbad?例如。1... 查看详情

java如何导入包

参考技术Ajava要导入jar包可以参考以下操作方法:方法一:1、首先对着myeclipse空白处,右键->BuildPath->ConfigureBuildPath...2、点击Libraries->AddExternalJARs...,选择一个外部的jar包,打开,OK。3、jar包导入工程后,就可以通过代码... 查看详情

Java:包R不存在[重复]

...程,但在我的主活动中收到错误无法解析符号R。我尝试导入mypackagename.R但这也不起作用我的包名是:包com.example.saarikakumar.myapplication;我的主要活动代码如下: 查看详情

需要 Python 包导入帮助 [重复]

】需要Python包导入帮助[重复]【英文标题】:PythonPackageImportHelpNeeded[duplicate]【发布时间】:2021-06-0609:45:53【问题描述】:我的文件夹结构如下图所示。我想将module1.py文件导入到我的script.py文件中。└──project├──package1│├... 查看详情

ValueError:尝试在***包之外进行相对导入-导入文件时[重复]

】ValueError:尝试在***包之外进行相对导入-导入文件时[重复]【英文标题】:ValueError:attemptedrelativeimportbeyondtop-levelpackage-whenimportfile[duplicate]【发布时间】:2020-12-0217:18:24【问题描述】:python3.7.7并在python3.6.0上尝试过我正在使用Dja... 查看详情

如何确保正确配置anaconda环境以导入包[重复]

】如何确保正确配置anaconda环境以导入包[重复]【英文标题】:Howtomakesureanacondaenvironmentisproperlyconfiguredtoimportpackages[duplicate]【发布时间】:2019-12-2708:04:44【问题描述】:我正在尝试让anaconda环境在Jupyternotebook中使用我在环境中包... 查看详情

keytool 错误:java.lang.Exception:证书未导入,别名 mykey 已存在

】keytool错误:java.lang.Exception:证书未导入,别名mykey已存在【英文标题】:keytoolerror:java.lang.Exception:Certificatenotimported,aliasmykeyalreadyexists【发布时间】:2020-05-3016:18:34【问题描述】:我正在尝试在我的JVM中安装客户端证书以调用h... 查看详情

intellijintellijidea自动导入包快捷方式关闭重复代码提示

idea可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设置设置idea导入包勾选标注1选项,IntelliJIDEA将在我们书写代码的时候自动帮我们优化导入的包,比如自动去掉一些没有用到的包。 勾选标注... 查看详情

如何在不重复导入***名称的情况下构造python包

】如何在不重复导入***名称的情况下构造python包【英文标题】:Howtostructurepythonpackageswithoutrepeatingtoplevelnameforimport【发布时间】:2013-07-0117:18:16【问题描述】:我是python包管理的新手,肯定做错了什么。我被鼓励创建一个目录结... 查看详情

idea_学习_05_intellijidea自动导入包快捷方式关闭重复代码提示

   二、参考资料1、IntelliJIDEA自动导入包快捷方式关闭重复代码提示 查看详情

有哪些python引包的方法?

...Apython引包的三种方法:1、输入“import包名”命令导入;2、输入“from包名import模块名”命令导入;3、输入“from包名.模块名import成员名”导入。包其实本质上是模块,因此导入模块的语法同样也适用于导入包。无... 查看详情

golang导入包的几个说明:import

导入包:标准包使用的是给定的短路径,如"fmt"、"net/http"自己的包,需要在工作目录(GOPATH)下指定一个目录,improt导入包,实际上就是基于工作目录的文件夹目录导入包的多种方式:直接根据$GOPATH/src目录导入import"test/lib"(路径其... 查看详情

HSQLDB:遇到重复的 sql 别名

】HSQLDB:遇到重复的sql别名【英文标题】:HSQLDB:Encounteredaduplicatedsqlalias【发布时间】:2016-10-2015:24:02【问题描述】:当我使用java程序中的自联接执行此查询时Queryquery=session.createSQLQuery("SELECTDISTINCT*"+"FROMlerneinheitASle1JOINlerneinheitASl... 查看详情

6trait特质包别名文件(代码片段)

trait类似java接口,scala中extends继承with多个类或接口自身类型traitAthis:B=>  //约束当前trait只能由哪些类实现classBextendsAclassCextendsA  //错误 包命名别名防止冲突importscala.collection.mutable.Map=>MMap scala.io.Sour 查看详情

golang中自定义包

参考技术Agolang中默认以文件夹名作为包名,导入的文件的路径为$GOPATH/src例如我们在$GOPATH/src下面建立一个gopackage的一个文件夹,下面建立一个abc.go的文件,文件内容如下则我们在包外部使用gopackage包中的函数时,导入格式是这... 查看详情

java基础——包机制

...u.com,则建立报的名字com.baidu.www一般不要让包的名字重复导入包importpackage1.[package...].(classname|*);例如:importcom.dong.base.*;javaDocjavadoc命令是用来 查看详情

在 Elixir 中,为啥在导入模块时“别名”优于“导入”?

】在Elixir中,为啥在导入模块时“别名”优于“导入”?【英文标题】:InElixir,whyis"alias"preferredover"import"forimportingthemodules?在Elixir中,为什么在导入模块时“别名”优于“导入”?【发布时间】:2022-01-0312:37:49【... 查看详情