|
|||||
|
対象: Javaオブジェクトのクラス名を取得するJavaオブジェクトを使用するコードを書いていて、classメソッドで取得したクラス名が意味不明だった事はないだろうか。Javaオブジェクトであっても、メジャーなクラスならばclassメソッドでもRubyオブジェクトとしてのクラス名が得られるが、それ以外のクラスでは#<Class:01x1e46a68>のようになってしまって意図した結果は得られない。 この場合、java_classメソッドならば意図したクラス名が得られる。
require "java"
date = java.util.Date.new
p "class #{date.class}"
p "java_class #{date.java_class}"
p date.to_s
proc = java.lang.Runtime.runtime.exec("ls")
p "class #{proc.class}"
p "java_class #{proc.java_class}"
結果は以下のようになる。 "class Java::JavaUtil::Date" "java_class java.util.Date" "Tue Feb 23 22:05:32 JST 2010" "class #<Class:01x1e46a68>" "java_class java.lang.UNIXProcess" (2010/02/24)
Copyright(C) 2004-2014 モバイル開発系(K) All rights reserved.
[Home]
|
|||||