Представьте себе следующий код, написанный на C #:
public class Provider<T>
{
T GetValue(); // implementation skipped for brevity
}
//
public class Converter<T1, T2>
{
T2 Convert(T1 value);// implementation skipped for brevity
}
//
public class SomeClass // No Generics Here
{
public T2 DoSomething<T1, T2>()
{
T1 value = new Provider<T1>().GetValue();
T2 result = new Converter<T1, T2>().Convert(value);
return result;
}
}
// and the usage
...
SomeClass some = new SomeClass();
SomeOtherType result = some.DoSomething<SomeType, SomeOtherType>();
Можно ли добиться того же с Java - я хочу знать, как вызывать метод в Java, предоставляя аргументы типа при использовании метода, как описано выше. Я сделал это в .NET, и я знаю, что Java поддерживает ограничения типов и логический вывод, я просто облажался с синтаксисом.