Suppress serialization warnings. (#2502)
Recent versions of javac emit a warning if a serializable class has a non-transient instance field with a declared type that does not inherit `Serializable`. In this context, we know that the actual values will always be serializable.
This commit is contained in:
parent
98077053f6
commit
45acc4db42
@ -496,9 +496,16 @@ public final class $Gson$Types {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Here and below we put @SuppressWarnings("serial") on fields of type `Type`. Recent Java
|
||||||
|
// compilers complain that the declared type is not Serializable. But in this context we go out of
|
||||||
|
// our way to ensure that the Type in question is either Class (which is serializable) or one of
|
||||||
|
// the nested Type implementations here (which are also serializable).
|
||||||
private static final class ParameterizedTypeImpl implements ParameterizedType, Serializable {
|
private static final class ParameterizedTypeImpl implements ParameterizedType, Serializable {
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private final Type ownerType;
|
private final Type ownerType;
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private final Type rawType;
|
private final Type rawType;
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private final Type[] typeArguments;
|
private final Type[] typeArguments;
|
||||||
|
|
||||||
public ParameterizedTypeImpl(Type ownerType, Type rawType, Type... typeArguments) {
|
public ParameterizedTypeImpl(Type ownerType, Type rawType, Type... typeArguments) {
|
||||||
@ -564,6 +571,7 @@ public final class $Gson$Types {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static final class GenericArrayTypeImpl implements GenericArrayType, Serializable {
|
private static final class GenericArrayTypeImpl implements GenericArrayType, Serializable {
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private final Type componentType;
|
private final Type componentType;
|
||||||
|
|
||||||
public GenericArrayTypeImpl(Type componentType) {
|
public GenericArrayTypeImpl(Type componentType) {
|
||||||
@ -598,7 +606,9 @@ public final class $Gson$Types {
|
|||||||
* is set, the upper bound must be Object.class.
|
* is set, the upper bound must be Object.class.
|
||||||
*/
|
*/
|
||||||
private static final class WildcardTypeImpl implements WildcardType, Serializable {
|
private static final class WildcardTypeImpl implements WildcardType, Serializable {
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private final Type upperBound;
|
private final Type upperBound;
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private final Type lowerBound;
|
private final Type lowerBound;
|
||||||
|
|
||||||
public WildcardTypeImpl(Type[] upperBounds, Type[] lowerBounds) {
|
public WildcardTypeImpl(Type[] upperBounds, Type[] lowerBounds) {
|
||||||
|
Loading…
Reference in New Issue
Block a user