Skip to content

Instantly share code, notes, and snippets.

@wrobstory
Created December 3, 2014 19:52
Show Gist options
  • Save wrobstory/acafa97c60a92a0d2975 to your computer and use it in GitHub Desktop.
Save wrobstory/acafa97c60a92a0d2975 to your computer and use it in GitHub Desktop.
Inheritance reflection wat
scala> abstract class FooClass(val foo:String)
defined class FooClass
scala> class ExtendsFoo(override val foo:String = "foo!") extends FooClass(foo)
defined class ExtendsFoo
scala> val foo = new ExtendsFoo()
foo: ExtendsFoo = ExtendsFoo@3b40500e
scala> foo.foo
res11: String = foo!
scala> foo.getClass.getField("foo")
java.lang.NoSuchFieldException: foo
at java.lang.Class.getField(Class.java:1579)
at .<init>(<console>:16)
at .<clinit>(<console>)
at .<init>(<console>:11)
at .<clinit>(<console>)
at $print(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704)
at scala.tools.nsc.interpreter.IMain$Request$$anonfun$14.apply(IMain.scala:920)
at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)
at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
at java.lang.Thread.run(Thread.java:745)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment