You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/binary-api.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,6 +81,9 @@ public class C {
81
81
}
82
82
~~~
83
83
84
+
In the bytecode, `@binaryAPI` definitions will have the [ACC_PUBLIC](https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.1-200-E.1) flag.
85
+
<!-- We can also set the [ACC_SYNTHETIC](https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.1-200-E.1) to hide these definitions from javac and java IDEs. -->
86
+
84
87
#### `@binaryAPIAccessor` annotation
85
88
86
89
A binary API with accessor is a definition that is annotated with `@binaryAPIAccessor`.
@@ -110,6 +113,8 @@ public class C {
110
113
Note that the change from `private[this]` to package private, protected or public is a binary compatible change.
111
114
Removing this annotation is a binary incompatible change.
112
115
116
+
In the bytecode, `@binaryAPIAccessor` generated accessors will have the [ACC_PUBLIC | ACC_SYNTHETIC](https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.1-200-E.1) flag.
117
+
113
118
#### Binary API and inlining
114
119
115
120
If there is a reference to a binary API in an inline method we can use the definition without needing an inline accessor.
0 commit comments