有没有办法在Java中进行自动的隐式类型转换?例如,假设我有两种类型,“FooSet”和“BarSet”,它们都是Set的表示形式。在类型之间进行转换很容易,因此我编写了两个实用程序方法:

/** Given a BarSet, returns a FooSet */
public FooSet barTOfoo(BarSet input) { /* ... */ }

/** Given a FooSet, returns a BarSet */
public BarSet fooTObar(FooSet input) { /* ... */ }

现在说有一个我想调用的方法:
public void doSomething(FooSet data) {
    /* .. */
}

但是我所拥有的只是一个BarSet myBarSet ...这意味着需要额外输入,例如:
doSomething(barTOfoo(myBarSet));

有没有办法告诉编译器某些类型可以自动转换为其他类型?我知道在C++中有重载是可能的,但是我在Java中找不到方法。我只想输入:
doSomething(myBarSet);

而且编译器知道会自动调用barTOfoo()

最佳答案

答案很简短:C++中的重载是可能的,但Java中没有办法做到这一点。

10-06 08:40