在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
这样的东西,所以我可以缩短我的源代码?
答案 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中无法做到这一点。