summaryrefslogtreecommitdiff
path: root/core/java/android/os/Parcel.java
diff options
context:
space:
mode:
authorHao Ke <haok@google.com>2022-01-21 18:10:05 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-01-21 18:10:05 +0000
commit4f71cd3513a31b16f9a46da554b6084bbddc3217 (patch)
treec2d5a3b8e40a9ffbd54ce297358c07f7056e0b86 /core/java/android/os/Parcel.java
parentbcf19024d32bb2b1f096bd786ceb4aff905c3ccc (diff)
parent70398d2001b30baed5e6682baafe55df6ca39afa (diff)
Merge "Changing readParcelable and readSerializable's method signatures." am: d5b3a5c4a9 am: 6c1f3fbcd2 am: 1ff8962b79 am: 70398d2001
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1953436 Change-Id: Iaef6f3bd68561b879bf0d1600b7296b5c39b225a
Diffstat (limited to 'core/java/android/os/Parcel.java')
-rw-r--r--core/java/android/os/Parcel.java17
1 files changed, 10 insertions, 7 deletions
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