Есть ли способ сделать автоматическое неявное преобразование типов в Java? Например, скажем, у меня есть два типа: «FooSet» и «BarSet», которые оба являются представлениями набора. Между типами легко конвертировать, поэтому я написал два служебных метода:
/** 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()