Java: приведение типа при работе с массивом?
for (MyType t : FuncThatReturnsArrayOfObject {
Если у тебя массив Object[], содержащий только MyType, то ничего не сделаешь - проблема в архитектуре.
А, не, сделаешь. Можешь обернуть Arrays.asList и скаcтить к List<MyType>, но это грязный хак
Collection<Object> o = ...;
Collection<MyType> m = (Collection<MyType>) o;
Collection<MyType> m = (Collection<MyType>) (Collection) o;
for (MyType t : FuncThatReturnsArrayOfObject {Так не компилится.
Можешь обернуть Arrays.asList и скаcтить к List<MyType>, но это грязный хакХа, думал об этом. Но уж лучше прибегуть к Object o
Оба хуже. Надо менять тип возвращаемого значения функции.
public <X> X dirtyGet(Object o) {
assert model != null : MODEL_IN_PROXY_IS_NULL_STRING;
assert property != null : PROPERTIES_IS_NULL_STRING;
return (X) model.get(o);
}
(ирония мод)
Функция библиотечная.
это наследие java до версии 1.5 , пока не появились дженерики
Дженерики-то тут причём? Что, до 1.5 массивы были только Object[]?
С дженериками стало возможно указывать тип элемента (например в коллекции) и одной функцией toArray(T[] elem) вернуть массив без каста каждого элемента
Оставить комментарий
sergey_m
Есть такой код:Возможно ли его упростить так, чтобы не прибегать к Object o?
Например компилится и не работает: