Wie erstellen Sie ein Objekt der ScriptableObject in java-Script...?
wenn ich versuche, ein Objekt einer Klasse in java-script Datei die sich ScriptableObject... Der folgende Fehler entstehen.
js: uncaught JavaScript runtime exception: TypeError: Cannot find default value for object.”
- Klasse-Datei ist
package sumit2;
import org.mozilla.javascript.ScriptableObject;
public class Sumit extends ScriptableObject {
public String getClassName(){
return "Sumit";
}
public void foo() {
System.out.println("Sumit!!!!!!!");
}
}
Java-Script-Datei:-
importPackage(Packages.sumit2);
var vv=new Sumit();
print(vv.foo());
- code... wirklich...
- ja..check..es
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, Sie haben zu überschreiben getDefaultValue in Sumit. Dies ist die Konvertierung von object zu string in javascript.
Und dann, erhalten Sie folgende Fehlermeldung:
**HINWEIS: Die exception "Cannot find default-Wert für das Objekt." verursacht wurde, wenn die Anzeige Ausnahme vor. Der string-Wert "sumit2.Sumit@1bf6770" produziert wird, durch aufrufen von getDefaultValue
Zweite, javascript-nicht java-Methoden aufrufen, Objekte erweitert, von ScriptableObject. Wenn Sie möchten, Aufruf von foo aus javascript überschreiben get(String, Skriptfähige) wie folgt:
Und Sie erhalten:
Ich denke, das Teil
ist ärgerlich. Ich empfehle zum erstellen einer adapter-Klasse implementiert die Funktion und überschreibt alle Methoden von Funktion mit leeren Aussagen.
Habe ich versucht den code zu verwenden-Konzept geschrieben von @hoge1e3 aber leider hat es nicht funktioniert für mich mit den neuesten Rhino bauen (1_7R5pre). Allerdings war ich in der Lage, erstellen Sie eine Java-Klasse mit Methoden, aufrufbarer in JavaScript mithilfe der Annotationen zur Verfügung gestellt von der Rhino-framework. In das Ende, es war eigentlich sehr einfach und unkompliziert.
Als Referenz, bitte sehen Sie die Beispiele enthalten, die in der Rhino-Quelle zur Verfügung gestellt von Mozilla: https://github.com/mozilla/rhino/tree/master/examples
Beispiel Klasse definition:
Beispiel der Umwandlung der obigen Klasse von Java nach JavaScript:
Es ist ein logischer Fehler im code: Sie versuchen zu drucken
void
- Wert: der Rückgabewert vonvv.foo()
.Wenn Sie den code ändern aus dem, was Sie von
print(vv.foo())
zu:vv.foo()
oder alternativ ändern Sie die Java-die Rückkehr derString
"Sumit!!!!!!!"
und drucken, ich denke, was Sie haben, funktionieren wird.