在Python中,您可以执行以下操作:
from a import b as c
在Java中如何做到这一点,因为我有两个冲突的导入。
在Python中,您可以执行以下操作:
from a import b as c
在Java中如何做到这一点,因为我有两个冲突的导入。
当前回答
除非非默认构造函数有问题,否则你总是可以这样做(而我们都在等待Java语言规范赶上):
public class YaddaYadda
{
private static class ZU extends eu.zrbj.util.ZrbjUtil_3_0 { }
public void foo (String s)
{
if (ZU.isNullOrEmpty(s))
{
// ...
对于项目范围的使用,“import”类可以进入一个单独的类文件,为导入提供一个定义点。
这是一个救星,特别是对于“库”类,即静态实用函数的集合。首先,它使您能够对这些野兽进行版本控制(如示例所示),而不会给用户带来很大不便。
其他回答
可笑的是java还没有这个功能。Scala有它
import com.text.Formatter
import com.json.{Formatter => JsonFormatter}
val Formatter textFormatter;
val JsonFormatter jsonFormatter;
可能值得注意的是,Groovy有这样的特性:
import java.util.Calendar
import com.example.Calendar as MyCalendar
MyCalendar myCalendar = new MyCalendar()
Java不允许这样做。您需要通过其中一个类的全限定名引用它,而只导入另一个类。
实际上,创建一个快捷方式是可能的,这样你就可以在代码中使用更短的名称,方法如下:
package com.mycompany.installer;
public abstract class ConfigurationReader {
private static class Implementation extends com.mycompany.installer.implementation.ConfigurationReader {}
public abstract String getLoaderVirtualClassPath();
public static QueryServiceConfigurationReader getInstance() {
return new Implementation();
}
}
通过这种方式,您只需要指定一次长名称,并且可以拥有任意多个特殊命名的类。
我喜欢这种模式的另一个原因是,可以将实现类命名为与抽象基类相同的类,只是将其放置在不同的名称空间中。不过,这与导入/重命名模式无关。
除非非默认构造函数有问题,否则你总是可以这样做(而我们都在等待Java语言规范赶上):
public class YaddaYadda
{
private static class ZU extends eu.zrbj.util.ZrbjUtil_3_0 { }
public void foo (String s)
{
if (ZU.isNullOrEmpty(s))
{
// ...
对于项目范围的使用,“import”类可以进入一个单独的类文件,为导入提供一个定义点。
这是一个救星,特别是对于“库”类,即静态实用函数的集合。首先,它使您能够对这些野兽进行版本控制(如示例所示),而不会给用户带来很大不便。