Term
Chamando todos os métodos estáticos do System.currentTimeMillis() |
|
Definition
var file = new java.io.File("sample.js"); print(file.getAbsolutePath()); print(file.absolutePath);
|
|
|
Term
Chamada da função Java.type referências usada para obter tipos Java precisos |
|
Definition
var LinkedList = Java.type("java.util.LinkedList"); var primitiveInt = Java.type("int"); var arrayOfInts = Java.type("int[]");
|
|
|
Term
Simples Hello World usando Nashorn |
|
Definition
import javax.script.*; ScriptEngineManager m = new ScriptEngineManager(); ScriptEngine nashorn = m.getEngineByName("nashorn");
try { nashorn.eval("print('Hello, world')"); } catch (ScriptException e) { }
|
|
|
Term
Classe Java simples que recebe um nome de usuário de seu construtor, e tem um método que retorna uma saudação |
|
Definition
package com.credera.example; public class HelloUser { private String name; public HelloUser(String name) { this.name = name; } public String getMessage() { return "Hello, " + this.name; } }
|
|
|
Term
Nashorn permite tipagem de arrays em JavaScript |
|
Definition
var IntArray = Java.type("int[]");
|
|
|
Term
Com Nashorn, em vez de mexer com matrizes, podemos usar qualquer coleção de java. Primeiro defina o tipo java via Java.type, em seguida, criar novas instâncias na demanda. |
|
Definition
var ArrayList = Java.type('java.util.ArrayList'); var list = new ArrayList(); list.add('a'); list.add('b'); list.add('c'); for each (var el in list) print(el); // a, b, c
|
|
|
Term
Utilizando literais de uma função |
|
Definition
var list2 = new java.util.ArrayList(); list2.add("ddd2"); list2.add("aaa2"); list2.add("bbb1"); list2 .stream() .filter(function(el) { return el.startsWith("aaa"); }) .sorted() .forEach(function(el) { print(el); });
|
|
|
Term
Ampliando tipos de java utilizando a extensão Java.extend |
|
Definition
var Runnable = Java.type('java.lang.Runnable'); var Printer = Java.extend(Runnable, { run: function() { print('printed from a separate thread'); } });
|
|
|
Term
|
Definition
var System = Java.type('java.lang.System'); System.out.println(10); // 10 System.out["println"](11.0); // 11.0 System.out["println(double)"](12); // 12.
|
|
|
Term
|
Definition
var Date = Java.type('java.util.Date'); var date = new Date(); date.year += 1900; print(date.year); // 2014
|
|
|
Term
|
Definition
function sqr(x) x * x; print(sqr(3)); // 9
|
|
|
Term
Ligando propriedade de dois objetos diferentes |
|
Definition
var o1 = {}; var o2 = { foo: 'bar'}; Object.bindProperties(o1, o2); print(o1.foo); // bar o1.foo = 'BAM'; print(o2.foo); // BAM
|
|
|
Term
|
Definition
print(" hehe".trimLeft()); // hehe print("hehe ".trimRight() + "he"); // hehehe
|
|
|
Term
|
Definition
print(__FILE__, __LINE__, __DIR__);
|
|
|
Term
|
Definition
var imports = new JavaImporter(java.io, java.lang); with (imports) { var file = new File(__FILE__); System.out.println(file.getAbsolutePath()); // /path/to/my/script.js }
|
|
|
Term
|
Definition
var list = new java.util.ArrayList(); list.add("s1");
|
|
|
Term
Acessando membros substituídos |
|
Definition
var SuperRunner = Java.type('com.winterbe.java8.SuperRunner'); var Runner = Java.extend(SuperRunner); var runner = new Runner() { run: function() { Java.super(runner).run(); print('on my run'); } } runner.run();
|
|
|
Term
Chamando APIs Java da Oracle Nashorn |
|
Definition
print(java.lang.System.currentTimeMillis()); Java objects can be instantiated using the new operator: var file = new java.io.File("sample.js"); print(file.getAbsolutePath()); print(file.absolutePath);
|
|
|
Term
|
Definition
try { func() } catch (e if e instanceof TypeError) { // handle TypeError here } catch (e) { // handle any other.. }
|
|
|
Term
|
Definition
function sqr(x) x*x // também equivalente a // function sqr(x) { return x*x }
|
|
|