Java中的自动类型转换?

dav*_*avr 4 java overloading type-conversion

有没有办法在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) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

现在说有一个这样的方法,我想打电话:

public void doSomething(FooSet data) {
    /* .. */
}
Run Code Online (Sandbox Code Playgroud)

但我所拥有的只是BarSet myBarSet...它意味着额外的打字,如:

doSomething(barTOfoo(myBarSet));
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉编译器某些类型可以自动转换为其他类型?我知道这可以在C++中进行重载,但我找不到Java的方法.我想能够输入:

doSomething(myBarSet);
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*tin 5

答案很简单:在C++中可能会出现重载,但在Java中无法做到这一点.