diff options
| -rw-r--r-- | core/api/current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/os/Parcel.java | 17 |
2 files changed, 12 insertions, 9 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 22d1c3aa090f..2d1b8a3ab421 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -32282,7 +32282,7 @@ package android.os { method @Deprecated public void readMap(@NonNull java.util.Map, @Nullable ClassLoader); method public <K, V> void readMap(@NonNull java.util.Map<? super K,? super V>, @Nullable ClassLoader, @NonNull Class<K>, @NonNull Class<V>); method @Deprecated @Nullable public <T extends android.os.Parcelable> T readParcelable(@Nullable ClassLoader); - method @Nullable public <T> T readParcelable(@Nullable ClassLoader, @NonNull Class<T>); + method @Nullable public <T extends android.os.Parcelable> T readParcelable(@Nullable ClassLoader, @NonNull Class<? super T>); method @Deprecated @Nullable public android.os.Parcelable[] readParcelableArray(@Nullable ClassLoader); method @Nullable public <T> T[] readParcelableArray(@Nullable ClassLoader, @NonNull Class<T>); method @Deprecated @Nullable public android.os.Parcelable.Creator<?> readParcelableCreator(@Nullable ClassLoader); @@ -32292,7 +32292,7 @@ package android.os { method @Nullable public android.os.PersistableBundle readPersistableBundle(); method @Nullable public android.os.PersistableBundle readPersistableBundle(@Nullable ClassLoader); method @Deprecated @Nullable public java.io.Serializable readSerializable(); - method @Nullable public <T> T readSerializable(@Nullable ClassLoader, @NonNull Class<T>); + method @Nullable public <T extends java.io.Serializable> T readSerializable(@Nullable ClassLoader, @NonNull Class<? super T>); method @NonNull public android.util.Size readSize(); method @NonNull public android.util.SizeF readSizeF(); method @Deprecated @Nullable public <T> android.util.SparseArray<T> readSparseArray(@Nullable ClassLoader); diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index 3bc3ec83bde5..e8b3ae9499fb 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -3711,10 +3711,10 @@ public final class Parcel { final int m = list.size(); int i = 0; for (; i < m && i < n; i++) { - list.set(i, (T) readParcelableInternal(cl, clazz)); + list.set(i, readParcelableInternal(cl, clazz)); } for (; i < n; i++) { - list.add((T) readParcelableInternal(cl, clazz)); + list.add(readParcelableInternal(cl, clazz)); } for (; i < m; i++) { list.remove(n); @@ -4217,7 +4217,8 @@ public final class Parcel { * trying to instantiate an element. */ @Nullable - public <T> T readParcelable(@Nullable ClassLoader loader, @NonNull Class<T> clazz) { + public <T extends Parcelable> T readParcelable(@Nullable ClassLoader loader, + @NonNull Class<? super T> clazz) { Objects.requireNonNull(clazz); return readParcelableInternal(loader, clazz); } @@ -4227,7 +4228,8 @@ public final class Parcel { */ @SuppressWarnings("unchecked") @Nullable - private <T> T readParcelableInternal(@Nullable ClassLoader loader, @Nullable Class<T> clazz) { + private <T extends Parcelable> T readParcelableInternal(@Nullable ClassLoader loader, + @Nullable Class<? super T> clazz) { Parcelable.Creator<?> creator = readParcelableCreatorInternal(loader, clazz); if (creator == null) { return null; @@ -4463,7 +4465,8 @@ public final class Parcel { * deserializing the object. */ @Nullable - public <T> T readSerializable(@Nullable ClassLoader loader, @NonNull Class<T> clazz) { + public <T extends Serializable> T readSerializable(@Nullable ClassLoader loader, + @NonNull Class<? super T> clazz) { Objects.requireNonNull(clazz); return readSerializableInternal( loader == null ? getClass().getClassLoader() : loader, clazz); @@ -4473,8 +4476,8 @@ public final class Parcel { * @param clazz The type of the serializable expected or {@code null} for performing no checks */ @Nullable - private <T> T readSerializableInternal(@Nullable final ClassLoader loader, - @Nullable Class<T> clazz) { + private <T extends Serializable> T readSerializableInternal(@Nullable final ClassLoader loader, + @Nullable Class<? super T> clazz) { String name = readString(); if (name == null) { // For some reason we were unable to read the name of the Serializable (either there |