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