Java中的自定义隐式转换

时间:2014-04-12 21:50:09

标签: java

在C#中,我可以为我的类创建自己的隐式转换,如下所示......

public static implicit operator TypeYouWantToChangeTo (ClassYouAreChanging c)  
{ 
    TypeYouWantToChangeTo x;
    //convert c to x
    return x;
}

如何让一个类能够隐式转换为另一个类?同样在C#中我可以将隐式更改为显式,也可以创建手动强制转换的能力。你是如何用Java实现的?

1 个答案:

答案 0 :(得分:19)

您不能使用Java重载运算符。 在您选择的类中添加一个方法来执行转换。 例如:

public class Blammy
{
    public static final Blammy blammyFromHooty(final Hooty hoot)
    {
        Blammy returnValue;

        // convert from Hooty to Blammy.

        return returnValue;
    }
}

修改

  • 只有内置类型才有隐式转换。
  • 显式转换(在java中)称为强制转换。例如,int q = 15; double x = (double) q;
  • 永远不会隐式转换您的自定义类型。
  • extendsimplements不是转化。
  • 所有隐式转换都适用于基本类型。