diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-02-23 17:13:27 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-02-23 17:13:27 -0600 |
commit | 739a7f0ec6c1995c25b9e1eb06a2ed99e1cad450 (patch) | |
tree | 3b70c2c6311ed88fe3759632474cc1f875d52116 /src/main/scala/org/perl8/test/harness/package.scala | |
parent | f09a5885afc7f79886a6a0cc251f3506b74dd7eb (diff) | |
download | scala-test-more-739a7f0ec6c1995c25b9e1eb06a2ed99e1cad450.tar.gz scala-test-more-739a7f0ec6c1995c25b9e1eb06a2ed99e1cad450.zip |
clean up imports
Diffstat (limited to 'src/main/scala/org/perl8/test/harness/package.scala')
-rw-r--r-- | src/main/scala/org/perl8/test/harness/package.scala | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/scala/org/perl8/test/harness/package.scala b/src/main/scala/org/perl8/test/harness/package.scala new file mode 100644 index 0000000..a5641e8 --- /dev/null +++ b/src/main/scala/org/perl8/test/harness/package.scala @@ -0,0 +1,21 @@ +package org.perl8.test + +package object harness { + import scala.reflect.{ClassTag,classTag} + + def loadClass[T: ClassTag] (className: String): Class[_] = + classTag[T].runtimeClass.getClassLoader.loadClass(className) + + def newInstance[T: ClassTag] (className: String): T = + loadClass[T](className).newInstance.asInstanceOf[T] + + def newInstance[T: ClassTag, U <: AnyRef: ClassTag] ( + className: String, + arg: U + ): T = { + val classObj = loadClass[T](className) + val argClassObj = classTag[U].runtimeClass + val constructor = classObj.getConstructor(argClassObj) + constructor.newInstance(arg).asInstanceOf[T] + } +} |