java,有没有一种方法可以用另一个名称导入一个类
有没有办法可以用另一个名称导入一个类? 就像如果我有一个名为 javax.C 的类和另一个名为 java.C 的类,我可以在名称 C1 下导入 javax.C,并在名称 C2 下导入 java.C。
中执行类似的操作:
using Sys=System;
我们可以在 C#或 Vb
Imports Sys=System
is there a way we can import a class under another name?
Like if i have a class called javax.C and another class called java.C i can import javax.C under the name C1 and import java.C under the name C2.
We can do something like this in C#:
using Sys=System;
or Vb:
Imports Sys=System
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不,Java 中没有这样的东西。您只能以原始名称导入类,并且必须对所有未导入的类使用完全限定名称(
java.lang
中的类和当前类的包中的类除外)。No, there is nothing like that in Java. You can only import classes under their original name, and have to use the fully qualified name for all that you don't import (except those in
java.lang
and the current class's package).简而言之,不,这在 Java 中是不可能的。
To be short, no, this isn't possible in Java.
不。我认为 Java故意放弃了
typedef
。好消息是,如果您看到某种类型,您就知道它是什么。它不能是其他东西的别名;或者别名的别名...如果一个新概念确实值得一个新名称,那么它很可能也值得一个新类型。
大多数 Java 开发人员都会对
Sys=System
的使用示例感到不满。No. I think Java deliberately ditched
typedef
. The good news is, if you see a type, you know what it is. It can't be an alias to something else; or an alias to an alias to ...If a new concept really deserves a new name, it most likely deserves a new type also.
The usage example of
Sys=System
will be frowned upon by most Java devs.Java 不支持静态重命名。一种想法是使用新的类名对有问题的对象进行子类化(但由于某些副作用/限制,这可能不是一个好主意,例如您的目标类可能具有最终修饰符。在允许的情况下,如果显式类型检查,代码可能会表现不同使用
getClass()
或instanceof ClassToRename
等(下面的示例改编自不同的答案)Java doesn't support static renaming. One idea is to subclass object in question with a new classname (but may not be a good idea because of certain side-effects / limitations, e.g. your target class may have the final modifier. Where permitted the code may behave differently if explicit type checking is used
getClass()
orinstanceof ClassToRename
, etc. (example below adapted from a different answer)