Skip to content

Instantly share code, notes, and snippets.

@eltimn
Created August 17, 2012 14:38
Show Gist options
  • Save eltimn/3379256 to your computer and use it in GitHub Desktop.
Save eltimn/3379256 to your computer and use it in GitHub Desktop.
Get reference to an object via it's class name
// Say you have some case objects like this:
package code
sealed trait Concept
case object Address extends Concept
case object City extends Concept
// From these you can create an html select list:
<select name="concept">
<option value="code.Address$">Address</option>
<option value="code.City$">City</option>
</select>
// to get a reference to the case object on your backend server
import code.Concept
import net.liftweb.common.Box
import net.liftweb.http.S
import net.liftweb.util.Helpers.tryo
val concept: Box[Concept] = S.param("concept")
.flatMap(p => tryo(Class.forName(p).getField("MODULE$").get(null).asInstanceOf[Concept]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment