-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJEP181NestBasedAccessControl.java
More file actions
61 lines (47 loc) · 2.08 KB
/
JEP181NestBasedAccessControl.java
File metadata and controls
61 lines (47 loc) · 2.08 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
package com.ibrahimatay;
import java.util.Arrays;
import java.util.stream.Collectors;
/*
* javap - The Java Class File Disassembler
* https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html
* https://docs.oracle.com/en/java/javase/11/tools/javap.html
*
* JEP 181: Nest-Based Access Control
* https://openjdk.org/jeps/181
* */
public class JEP181NestBasedAccessControl {
public void publicMethod() {
}
private void privateMethod() {
}
class NestedClass {
public void nestedPublic() {
}
}
class NestedClass2 {
public void nestedPublic2() {
}
}
static class NestedClass3 {
public void nestedPublic3() {
}
}
public static void main(String[] args) {
Class<?> nestedHost = JEP181NestBasedAccessControl.class.getNestHost();
Arrays.stream(nestedHost.getNestMembers()).collect(Collectors.toList()).forEach(System.out::println);
// class com.ibrahimatay.NestBasedAccessControl
// class com.ibrahimatay.NestBasedAccessControl$NestedClass3
// class com.ibrahimatay.NestBasedAccessControl$NestedClass2
// class com.ibrahimatay.NestBasedAccessControl$NestedClass
Class<?>[] nestedMembers = JEP181NestBasedAccessControl.class.getNestMembers();
Arrays.stream(nestedMembers).collect(Collectors.toList()).forEach(System.out::println);
// class com.ibrahimatay.NestBasedAccessControl
// class com.ibrahimatay.NestBasedAccessControl$NestedClass3
// class com.ibrahimatay.NestBasedAccessControl$NestedClass2
// class com.ibrahimatay.NestBasedAccessControl$NestedClass
System.out.println("NestedClass class is class in NestBasedAccessControl:"+ JEP181NestBasedAccessControl.class.isNestmateOf(NestedClass.class));
System.out.println("NestBasedAccessControl class is not class in NestedClass:"+ NestedClass.class.isNestmateOf(JEP181NestBasedAccessControl.class));
// NestedClass class is class in NestBasedAccessControl:true
// NestBasedAccessControl class is not class in NestedClass:true
}
}