Shared Flashcard Set

Details

Nashorn Java Engine
Exemplos práticos de Nashorn
20
Software
Graduate
04/20/2014

Additional Software Flashcards

 


 

Cards

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
Sobrecarga de parâmetro
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
Java Beans
Definition

var Date = Java.type('java.util.Date');
var date = new Date();
date.year += 1900;
print(date.year); // 2014

Term
Funções literais
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
Trimming Strings
Definition

print(" hehe".trimLeft()); // hehe
print("hehe ".trimRight() + "he"); // hehehe

Term
"Where is"
Definition

print(__FILE__, __LINE__, __DIR__);

Term
Importanto escopos
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
Convertendo arrays
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
Cláusulas condicionais
Definition

try {
    func()
} catch (e if e instanceof TypeError) {
    // handle TypeError here
} catch (e) {
    // handle any other..
}

Term
Expressão de funções
Definition

function sqr(x) x*x
// também equivalente a
// function sqr(x) { return x*x }

Supporting users have an ad free experience!