Skip to content

Commit b98453d

Browse files
committed
JDK8 示例和文档更新
1 parent 655cd7e commit b98453d

File tree

24 files changed

+475
-19
lines changed

24 files changed

+475
-19
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
- [Java 正则](docs/advanced/java-regex.md)
4646
- [Java 编码和加密](docs/advanced/java-crypto.md) - 关键词:`Base64``消息摘要``数字签名``对称加密``非对称加密``MD5``SHA``HMAC``AES``DES``DESede``RSA`
4747
- [Java 本地化](docs/advanced/java-locale.md)
48-
- [Java JDK8](docs/advanced/jdk8.md)
48+
- [Java JDK8](docs/advanced/jdk8.md) - 关键词:`Stream``lambda``Optional``@FunctionalInterface`
4949

5050
### [Java 容器](docs/container)
5151

codes/javacore-jdk8/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# JDK8 特性示例
2+
3+
> 本项目代码来源于 [java8-tutorial](https://github.com/winterbe/java8-tutorial)

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn1.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
34
import io.github.dunwu.javacore.jdk8.lambda.Person;
45

6+
import java.io.BufferedReader;
57
import java.io.FileReader;
8+
import java.io.InputStream;
9+
import java.nio.charset.Charset;
610
import java.time.LocalDateTime;
711
import java.util.Date;
812
import javax.script.Invocable;
@@ -18,7 +22,8 @@ public class Nashorn1 {
1822

1923
public static void main(String[] args) throws Exception {
2024
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
21-
engine.eval(new FileReader("res/nashorn1.js"));
25+
BufferedReader reader = ResourceUtil.getReader("META-INF/scripts/nashorn1.js", Charset.defaultCharset());
26+
engine.eval(reader);
2227

2328
Invocable invocable = (Invocable) engine;
2429
Object result = invocable.invokeFunction("fun1", "Peter Parker");

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn10.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
34
import jdk.nashorn.api.scripting.NashornScriptEngine;
45

56
import java.util.concurrent.TimeUnit;
@@ -13,7 +14,8 @@ public class Nashorn10 {
1314

1415
public static void main(String[] args) throws ScriptException, NoSuchMethodException {
1516
NashornScriptEngine engine = (NashornScriptEngine) new ScriptEngineManager().getEngineByName("nashorn");
16-
engine.eval("load('res/nashorn10.js')");
17+
String filename = ResourceUtil.getResource("META-INF/scripts/nashorn10.js").getFile();
18+
engine.eval("load('" + filename + "')");
1719

1820
long t0 = System.nanoTime();
1921

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn2.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
34
import jdk.nashorn.api.scripting.ScriptObjectMirror;
45

6+
import java.io.BufferedReader;
57
import java.io.FileReader;
8+
import java.nio.charset.Charset;
69
import java.util.Arrays;
710
import javax.script.ScriptEngine;
811
import javax.script.ScriptEngineManager;
@@ -33,7 +36,8 @@ public static void fun4(ScriptObjectMirror person) {
3336

3437
public static void main(String[] args) throws Exception {
3538
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
36-
engine.eval(new FileReader("res/nashorn2.js"));
39+
BufferedReader reader = ResourceUtil.getReader("META-INF/scripts/nashorn2.js", Charset.defaultCharset());
40+
engine.eval(reader);
3741
}
3842

3943
}

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn3.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
4+
5+
import java.io.BufferedReader;
6+
import java.nio.charset.Charset;
37
import javax.script.ScriptEngine;
48
import javax.script.ScriptEngineManager;
59

@@ -12,7 +16,8 @@ public class Nashorn3 {
1216

1317
public static void main(String[] args) throws Exception {
1418
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
15-
engine.eval("load('res/nashorn3.js')");
19+
BufferedReader reader = ResourceUtil.getReader("META-INF/scripts/nashorn3.js", Charset.defaultCharset());
20+
engine.eval(reader);
1621
}
1722

1823
}

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn4.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
4+
5+
import java.io.BufferedReader;
6+
import java.nio.charset.Charset;
7+
import java.util.Arrays;
38
import javax.script.ScriptEngine;
49
import javax.script.ScriptEngineManager;
510

@@ -12,7 +17,8 @@ public class Nashorn4 {
1217

1318
public static void main(String[] args) throws Exception {
1419
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
15-
engine.eval("loadWithNewGlobal('res/nashorn4.js')");
20+
String filename = ResourceUtil.getResource("META-INF/scripts/nashorn4.js").getFile();
21+
engine.eval("loadWithNewGlobal('" + filename + "')");
1622
}
1723

1824
}

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn5.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
4+
35
import javax.script.Invocable;
46
import javax.script.ScriptEngine;
57
import javax.script.ScriptEngineManager;
@@ -13,7 +15,8 @@ public class Nashorn5 {
1315

1416
public static void main(String[] args) throws Exception {
1517
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
16-
engine.eval("load('res/nashorn5.js')");
18+
String filename = ResourceUtil.getResource("META-INF/scripts/nashorn5.js").getFile();
19+
engine.eval("load('" + filename + "')");
1720

1821
Invocable invocable = (Invocable) engine;
1922

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn6.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
34
import jdk.nashorn.api.scripting.ScriptObjectMirror;
45

56
import javax.script.Invocable;
@@ -19,7 +20,8 @@ public static void getProduct(ScriptObjectMirror result) {
1920

2021
public static void main(String[] args) throws Exception {
2122
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
22-
engine.eval("load('res/nashorn6.js')");
23+
String filename = ResourceUtil.getResource("META-INF/scripts/nashorn6.js").getFile();
24+
engine.eval("load('" + filename + "')");
2325

2426
Invocable invocable = (Invocable) engine;
2527

codes/javacore-jdk8/src/main/java/io/github/dunwu/javacore/jdk8/nashorn/Nashorn8.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.dunwu.javacore.jdk8.nashorn;
22

3+
import cn.hutool.core.io.resource.ResourceUtil;
34
import io.github.dunwu.javacore.jdk8.lambda.Person;
45
import jdk.nashorn.api.scripting.NashornScriptEngine;
56

@@ -13,7 +14,8 @@ public class Nashorn8 {
1314

1415
public static void main(String[] args) throws ScriptException, NoSuchMethodException {
1516
NashornScriptEngine engine = (NashornScriptEngine) new ScriptEngineManager().getEngineByName("nashorn");
16-
engine.eval("load('res/nashorn8.js')");
17+
String filename = ResourceUtil.getResource("META-INF/scripts/nashorn8.js").getFile();
18+
engine.eval("load('" + filename + "')");
1719

1820
engine.invokeFunction("evaluate1"); // [object global]
1921
engine.invokeFunction("evaluate2"); // [object Object]

0 commit comments

Comments
 (0)