forked from winterbe/java8-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnashorn3.js
More file actions
121 lines (85 loc) · 2.07 KB
/
nashorn3.js
File metadata and controls
121 lines (85 loc) · 2.07 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
print('------------------');
print('IntArray:');
var IntArray = Java.type('int[]');
var array = new IntArray(5);
array[0] = 5;
array[1] = 4;
array[2] = 3;
array[3] = 2;
array[4] = 1;
try {
array[5] = 23;
} catch (e) {
print(e.message);
}
array[0] = "17";
print(array[0]);
array[0] = "wrong type";
print(array[0]);
array[0] = "17.3";
print(array[0]);
print('------------------');
for (var i in array) print(i);
print('------------------');
for each (var val in array) print(val);
print('------------------');
print('ArrayList:');
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);
print('------------------');
print('HashMap:');
var HashMap = Java.type('java.util.HashMap');
var map = new HashMap();
map.put('foo', 'foo1');
map.put('bar', 'bar1');
for each(var e in map.keySet()) print(e);
for each(var e in map.values()) print(e);
print('------------------');
print('Streams:');
var list2 = new ArrayList();
list2.add("ddd2");
list2.add("aaa2");
list2.add("bbb1");
list2.add("aaa1");
list2.add("bbb3");
list2.add("ccc");
list2.add("bbb2");
list2.add("ddd1");
list2
.stream()
.filter(function(el) {
return el.startsWith("aaa");
})
.sorted()
.forEach(function(el) {
print(el);
});
print('------------------');
print('Extend:');
var Runnable = Java.type('java.lang.Runnable');
var Printer = Java.extend(Runnable, {
run: function() {
print('This was printed from a seperate thread.');
}
});
var Thread = Java.type('java.lang.Thread');
new Thread(new Printer()).start();
new Thread(function() {
print('this was printed from another thread');
}).start();
print('------------------');
print('Parameter Overload:');
var System = Java.type('java.lang.System');
System.out.println(10);
System.out["println"](11.0);
System.out["println(double)"](12);
print('------------------');
print('JavaBeans:');
var Date = Java.type('java.util.Date');
var date = new Date();
date.year += 1900;
System.out.println(date.year);