forked from winterbe/java8-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnashorn4.js
More file actions
98 lines (59 loc) · 1.57 KB
/
nashorn4.js
File metadata and controls
98 lines (59 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// function literal with no braces
function sqr(x) x * x;
print(sqr(3));
// for each
var array = [1, 2, 3, 4];
for each (var num in array) print(num);
// object literals in constructors
var runnable = new java.lang.Runnable() {
run: function() {
print('on the run');
}
};
runnable.run();
// bind properties
var o1 = {};
var o2 = { foo: 'bar'};
Object.bindProperties(o1, o2);
print(o1.foo);
o1.foo = 'BAM';
print(o2.foo);
// string trim
print(" hehe".trimLeft());
print("hehe ".trimRight() + "he");
// whereis
print(__FILE__, __LINE__, __DIR__);
// java import
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
}
// convert iterable to js array
var list = new java.util.ArrayList();
list.add("s1");
list.add("s2");
list.add("s3");
var jsArray = Java.from(list);
print(jsArray);
print(Object.prototype.toString.call(jsArray));
// convert js array to java array
var javaArray = Java.to([3, 5, 7, 11], "int[]");
print(Object.prototype.toString.call(javaArray));
// calling super
var SuperRunner = Java.type('com.winterbe.java8.samples.nashorn.SuperRunner');
var Runner = Java.extend(SuperRunner);
var runner = new Runner() {
run: function() {
Java.super(runner).run();
print('on my run');
}
}
runner.run();
// load
load('http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js');
var odds = _.filter([1, 2, 3, 4, 5, 6], function (num) {
return num % 2 == 1;
});
print(odds);