Quelqu'un peut-il me donner un exemple sur la façon d'étendre une classe java dans un script java en utilisant l'adaptateur Java de Rhino?Exemple utilisant JavaAdapter de rhino
Répondre
Dépend de que vous souhaitez hériter. Je trouve que si j'utilise le prototype JavaScript pour objet « définitions » Je reçois les méthodes statiques de Java objets uniquement:
function test() {
this.hello = function() {
for(var i in this) {
println(i);
}
};
}
test.prototype= com.acme.app.TestClass; // use your class with static methods
// see the inheritance in action:
var testInstance=new test();
test.hello();
Cependant, JavaScript vous permet de faire des missions de prototypes sur les instances d'objet aussi bien, de sorte que vous pouvez utiliser une fonction comme celui-ci, et d'obtenir un comportement d'héritage plus de type Java:
function test(baseInstance) {
var obj = new function() {
this.hello=function() {
for(var i in this) {
println(i);
}
};
};
obj.prototype=baseInstance; // inherit from baseInstance.
}
// see the thing in action:
var testInstance=test(new com.acme.TestClass()); // provide your base type
testInstance.hello();
Ou utiliser une fonction (par exemple init
) similaire à la fonction ci-dessus dans l'objet lui-même:
ceci n'est pas lié à la question. il parle de JavaAdapter de rhino – oberhamsi
Depuis que je ne suis pas sûr à 100% que par Java Adapter vous dire ce que je pense qu'il est, les interfaces Java et telles peuvent être créées avec des listes de propriétés (nom = function()):
var runnable = new java.lang.Runnable({
run: function() { println('hello world!'); } // uses methodName: implementationFunction convention
};
java.awt.EventQueue.invokeLater(runnable); // test it
Ou bien pour des choses une seule méthode comme ça:
function runnableFunc() { println('hello world!'); }
var runnable = new java.lang.Runnable(runnableFunc); // use function name
java.awt.EventQueue.invokeLater(runnable); // test it
Merci pour votre réponse – kishore
Comment pouvez-vous étendre une autre classe comme ça? N'auriez-vous pas besoin de 'JavaAdapter'? –
Avec 'prototype', pour un exemple s'il vous plaît voir mon autre réponse. – user268396
pour toute autre personne qui pourrait venir à travers cela, il y a un exemple décent here (l'auteur utilise pour étendre awt.Canvas
).
var smileyCanvas = new JavaAdapter(awt.Canvas, {
paint: function (g) {
var size = this.getSize();
var d = Math.min(size.width, size.height);
var ed = d/20;
var x = (size.width - d)/2;
var y = (size.height - d)/2;
// draw head (color already set to foreground)
g.fillOval(x, y, d, d);
g.setColor(awt.Color.black);
g.drawOval(x, y, d, d);
// draw eyes
g.fillOval(x+d/3-(ed/2), y+d/3-(ed/2), ed, ed);
g.fillOval(x+(2*(d/3))-(ed/2), y+d/3-(ed/2), ed, ed);
//draw mouth
g.drawArc(x+d/4, y+2*(d/5), d/2, d/3, 0, -180);
}
});
Il y a more information on MDN, y compris une brève explication et appelant exemple de syntaxe.
Le lien MDN est mort – planty182
E.g. début d'un fil dans Rhino:
function startThread(funcOfThread) {
var someClass = { run: funcOfThread }; // Rhino syntax for new class with overwritten method
var r = new java.lang.Runnable(someClass);
var t = new java.lang.Thread(r);
t.start();
}
function UDP_Client() {
while (1)
java.lang.Thread.sleep(100);
}
startThread(UDP_Client);
- 1. rhino-mocks - bon exemple d'applications
- 2. Rhino Mocks Exemple de simulation de propriété
- 3. Toute personne utilisant Rhino Security?
- 4. Mocking COM Interfaces utilisant Rhino Mocks
- 5. "Auto-simulacre" en utilisant Rhino Mocks
- 6. Passage Classe <?> paramètre utilisant Rhino
- 7. Unity Nunit & Rhino Mocks
- 8. Enregistrement dans un référentiel en utilisant Rhino Mocks
- 9. Aidez-moi à éviter cette NullReferenceException (en utilisant Rhino Mocks)
- 10. problème de licence rhino
- 11. rhino embedding
- 12. Rhino Mocks: Mocking HttpRequestBase.Files
- 13. Où trouver Rhino Commons
- 14. Exemple d'un histogramme utilisant wxWidgets
- 15. Exemple utilisant BLOB dans SQLAlchemy
- 16. Exemple utilisant WikipediaTokenizer en Lucene
- 17. Comment utiliser Rhino
- 18. Exemple de liste liée utilisant des threads
- 19. Exemple de code client HID utilisant Bluez
- 20. en utilisant le dernier rhino dans le script ant
- 21. test unitaire avec lambda fail en utilisant rhino maquette
- 22. Rhino Mocks - Utilisation de Arg.Matches
- 23. Erreur lors de l'exécution Rhino
- 24. Utilisation de javax.script ou de Rhino pour exécuter javascript en Java avec le contexte du navigateur (par exemple, envjs)?
- 25. Syntaxe de l'argument NMocks2 dans Rhino Mocks?
- 26. rhino serverside js licence
- 27. Rhino Mocks - Stub Singleton
- 28. Navigateur d'objet Rhino
- 29. Rhino Mocks & Compact Framework
- 30. Rhino Mocks, void et propriétés
Java! = JavaScript. Jamais a été, ne sera jamais. –
@A. Scagnelli: C'est vrai, mais Rhino vous permet de scripter java. http://www.mozilla.org/rhino/ – TheLQ
Regardez cette page: http://www.mozilla.org/rhino/ScriptingJava.html –