(Class<?> subclass, Type[] lowerBounds)
| 1126 | |
| 1127 | |
| 1128 | private TypeToken<? extends T> getSubtypeFromLowerBounds(Class<?> subclass, Type[] lowerBounds) { |
| 1129 | for (Type lowerBound : lowerBounds) { |
| 1130 | @SuppressWarnings("unchecked") // T's lower bound is <? extends T> |
| 1131 | TypeToken<? extends T> bound = (TypeToken<? extends T>) of(lowerBound); |
| 1132 | // Java supports only one lowerbound anyway. |
| 1133 | return bound.getSubtype(subclass); |
| 1134 | } |
| 1135 | throw new IllegalArgumentException(subclass + " isn't a subclass of " + this); |
| 1136 | } |
| 1137 | |
| 1138 | |
| 1139 | private TypeToken<? super T> getArraySupertype(Class<? super T> supertype) { |
no test coverage detected