Я ищу обходное решение для следующей проблемы. Учитывая иерархию классов в Java:Xamarin Android привязка к Java-типу, который наследует общий тип
public interface Bar<T> {
getValue<T>();
}
public abstract class BarImpl<T> implements Bar<T> {
}
public class Foo extends BarImpl<Double> {
@override
public Double getValue() {
// ..
}
}
Xamarin.Android генерирует оберток следующим образом:
// Now in C# land
public interface Bar
{
// Xamarin.Android omits T Value { get; }
}
public partial abstract class BarImpl : Bar
{
// Xamarin.Android omits abstract T Value { get; }
}
public partial class Foo : BarImpl
{
// COMPILE ERROR HERE. No method to override
public override java.lang.Double Value
{
get { /* ... */ }
}
}
Теперь я хорошо известно, что Java сборник обрезает дженериков информацию, так что это не на самом деле проблему легко решить, но я хочу знать, если:
Любой наткнулась подобных проблем в java.android
Какие умные решения вы использовали для привязки этой иерархии классов?
Я заинтересован только в поглотителе Ценности на Foo (связанный с # класс) и каким-то образом, чтобы получить к нему доступ через базовый интерфейс (литая ОК).
- это не сгенерированные классы с частичным переводом на объект? o0 –
Да, они есть, но как я могу удалить переопределение на Foo.Value для начала? –
О ... вы говорите, что исключить узел Foo.Value вообще и объявить его в частичных классах? ... –