[JSR308] Wrapper types
mernst at csail.mit.edu
Sun Mar 2 13:18:11 EST 2008
> A big concern I have is that for annotations that don't put Object at
> the base of the hierarchy (like @ReadOnly) break the paradigm that
> everything is assignable to Object. Many methods that simply take an
> object will be unusable unless retrofitted which may not be possible.
> Even simple code like:
> @ReadOnly Date d = ...;
> Won't work since PrintStream doesn't define a method that takes a
> @ReadOnly value.
Your example is correct: annotating existing libraries is necessary.
However, I don't understand your assertion that retrofitting "may not be
possible". Can you please explain why?
In the specific case of @ReadOnly, an inference tool (named Javarifier)
exists. It works on source or byte codes, and it can insert the resulting
annotations in the source code, in .class files, or in a separate file that
can be read by a type-checker.
More information about the JSR308