Skip to content

Instantly share code, notes, and snippets.

@takedasoft
Created June 9, 2009 15:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takedasoft/126587 to your computer and use it in GitHub Desktop.
Save takedasoft/126587 to your computer and use it in GitHub Desktop.
/**
scala.mobileパッケージの使い方を試してみました。
オンデマンドでパッケージをロードして実行するしくみで、
要は、ClassLoaderとJavaリフレクションのラッパー。
コンパイル実行よりも、
scalaコンソールで一行ずつ実行したほうがわかりやすい。
*/
import java.net.URL
import scala.mobile._
object ScalaMobileTest extends Application {
//必要なjarを指定
val url
= new URL("http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/camel/camel-scala/1.6.0/camel-scala-1.6.0.jar")
//jarをロードしてクラスからインスタンスを生成
val scalaTypeConverter:Code
= new Location(url) create "org.apache.camel.scala.converters.ScalaTypeConverter"
//関数の生成。 <インスタンス>[<引数>,<戻り値>](<メソッド名>)
val convertToDocument
= scalaTypeConverter[scala.xml.Elem,org.w3c.dom.Document]("convertToDocument")
//生成した関数を実行
convertToDocument( <xml></xml> )
// jarの中身が足りなくてエラー(;x;)
// java.lang.ClassNotFoundException: org.apache.camel.converter.jaxp.XmlConverter
}
/*
ScalaStyleClass$.class クラスを必ず探しに行くので、Javaクラスのロードは不可。
ここを改善してくれればもっと使い道あるかも。
依存関係の多いライブラリでは使うのは難しそう。
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment