JDK 14 RFR of JDK-8232230: Suppress warnings on non-serializable non-transient instance fields in java.util.concurrent
Martin Buchholz
martinrb at google.com
Thu Oct 17 01:11:23 UTC 2019
On Wed, Oct 16, 2019 at 3:56 PM Joe Darcy <joe.darcy at oracle.com> wrote:
>
> FWIW, this code compiles in javac
>
> public interface SerializableCondition extends Condition,
> Serializable {
> public static <C extends Condition & Serializable>
> SerializableCondition transform(C
> condition) {
> return condition;
> }
> }
>
> and objects of existing types like
> AbstractQueuedLongSynchronizer.ConditionObject seem to get "converted"
> as desired.
>
>
I actually tried this ...
---
import java.io.Serializable;
import java.util.concurrent.locks.Condition;
public interface SerializableCondition
extends Condition, Serializable {
public static <C extends Condition & Serializable>
SerializableCondition transform(C condition) {
return condition;
}
}
---
... and got:
==> javac -source 14 -Xlint:all SerializableCondition.java
SerializableCondition.java:8: error: incompatible types: C cannot be
converted to SerializableCondition
return condition;
^
where C is a type-variable:
C extends Condition,Serializable declared in method <C>transform(C)
1 error
More information about the core-libs-dev
mailing list