Java包导入别名

时间:2015-03-26 07:50:59

标签: java syntax import package

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

2 个答案:

答案 0 :(得分:13)

不,你做不到"将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) {
        // ...
    }
}

答案 1 :(得分:5)

在Java中无法做到这一点。