blob: 8c23ada48215fdf2d3bced838e8735a591282e1b (
plain) (
tree)
|
|
import annotation._
@SerialVersionUID(42) @strictfp class Foo[@specialized(Int) T] extends Serializable {
def foo(t: T) = t
}
object Test extends App {
def checkUID(cls: Class[_], expected: Long) = {
val actual = java.io.ObjectStreamClass.lookup(cls).getSerialVersionUID
assert(actual == expected, s"$actual != expected for ${cls}")
}
def checkStrictFp(cls: Class[_]) = {
import java.lang.reflect._
for (m <- cls.getDeclaredMethods) {
val isStrict = Modifier.isStrict(m.getModifiers)
assert(isStrict, cls)
}
}
def check(x: AnyRef) {
checkUID(x.getClass, 42)
checkStrictFp(x.getClass)
}
check(new Foo[String])
check(new Foo[Int])
}
|