Indicates a public API that is stable for callers to use, but has no guarantee of stability for
extension. Consequently, the API should only be extended within the package containing the API.
For example:
An interface marked with this annotation can have new methods added to it.
A non-final class with this annotation can be marked final.
A class with this annotation can have new abstract methods added.
a non-final method with this annotation can be marked final.
The list above is just for illustration purposes and is not exhaustive.
Adding this annotation to an API is considered API-breaking.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-04-09 UTC."],[[["This webpage details the `InternalExtensionOnly` interface within the Google API Common library for Java, highlighting its role in marking APIs that are stable for use but not for extension outside their package."],["The latest version of this API is 2.46.1, and the page provides access to documentation for this and several prior releases, dating back to version 2.1.2, with all the versions available linking to the same interface: `com.google.api.core.InternalExtensionOnly`."],["The `InternalExtensionOnly` annotation signals that while an API is safe to use, making changes to the API such as adding new methods, or making a class final, are allowed, and are not considered stable for extensions."],["Adding the `InternalExtensionOnly` annotation to an existing API is classified as an API-breaking change."],["The `value()` method, part of this annotation, returns a String that gives contextual information as to why the class or interface is annotated as such."]]],[]]