私はサイの初心者です。
現在、.NET4およびIKVM.NETを介してRhino1.7Rフレームワークを使用しています。setWrapFractory()APIを使用してNativeJavaObjectを実装するいくつかのラップされたクラスを公開しました。
public class InterceptNativeObject : NativeJavaObject
{
public InterceptNativeObject()
{
}
public override Object get(String name, Scriptable start)
{
Object res = base.get(name, start);
if (res is NativeJavaMethod)
{
NativeJavaMethod method = (NativeJavaMethod)res;
return new RhinoMethodWrapFunction(method);
}
if (res == org.mozilla.javascript.UniqueTag.NOT_FOUND &&
base.javaObject is IPropertBox && base.javaObject != null)
{
object ret = ((IPropertBox)base.javaObject)._x__GetPropertyValue(name);
return Utils.ConvertCLRValueToJavaValue(ret);
}
return res;
}
.....
}
これで、必要に応じてすべての.NETメソッドとプロパティにアクセスできます。
私の現在の問題は、NativeJavaObjectクラスの「for...in」をサポートすることです。私が評価するとき
'for(var prop in myClass){printf(prop);};' ,
'非オブジェクトの呼び出し'エラーで'no'を返します。
'get'が' _iterator _ 'のオブジェクトを検索しようとしているようですが、get()関数で'notfound'になりました。したがって、例外が発生します。これまでに試しました
- java.util.iteratorを追加しました
- this.getIds()。GetEnumrator();を返します。
作品はありません。
ラップされたNativeJavaObjectのプロパティ列挙アクセスを許可するにはどうすればよいですか?'for ... in 'を有効にするためのRhinoの期待収益値' _iterator _ 'は何ですか?
前もって感謝します!