Java Object[] を Scala Array にてアクセス

Posted 2012年1月4日 by

Javaで作ったDBクラスのSelect文の結果を、複数レコードをArrayListで、1レコードをObject[] 配列で返す仕様で作りました。

これをScalaで受け取るには、Java配列をScalaで使うには以下のように書きます。

val f: Array[Object] = record.asInstanceOf[Array[Object]]

これを使ったプログラム。

package ews.servlet

import seedo.database._
import java.io.PrintWriter

class db02 {
	def run(out:PrintWriter) : Unit = {
		val sqlplus = new SqlPlus
		try {
			val records = sqlplus.select("*").from("EMP").whereParam("EMPNO=? OR EMPNO=? OR ENAME=?",Array(new Integer(7788),new Integer(7521),"JONES") ).orderBy("ENAME").executeQuery
			out.println("<table border='1'>")
			for(i <- 0 to records.size-1) {
				val record = records.get(i)
				val f: Array[Object] = record.asInstanceOf[Array[Object]] 
				out.println("<tr>")
				for(j <- 0 to f.length-1) {
					out.println("<td>" + (if(f(j)!=null){f(j)}else{""}) + "</td>")
				}
				out.println("</tr>")
			}
			out.println("</table>")
		} finally {
			sqlplus.close
		}
	}
}

可変長引数

Javaの可変長引数についてJDK1.4で可変長引数を使えるように作った whereParam関数。
JDK1.5以降ではwhere関数は…で可変長引数が使える。

引数をArray配列にして渡します。

Post Details

  • Post Title: Java Object[] を Scala Array にてアクセス
  • Author: admin
  • Filed As: Scala
  • Tags:
  • You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.