# Class InterfaceAudience

java.lang.Object
org.apache.yetus.audience.InterfaceAudience

@Public @Evolving public class InterfaceAudience extends Object
Annotation to inform users of a package, class or method's intended audience. Currently the audience can be `InterfaceAudience.Public`, `InterfaceAudience.LimitedPrivate` or `InterfaceAudience.Private`.
All public classes must have InterfaceAudience annotation.

- Public classes that are not marked with this annotation must be considered by default as `InterfaceAudience.Private`.
- External applications must only use classes that are marked `InterfaceAudience.Public`. Avoid using non public classes as these classes could be removed or change in incompatible ways.
- Some projects may choose to give special consideration to related projects. Such consideration can be done by using the `InterfaceAudience.LimitedPrivate` annotation with a named set of projects.
- Methods may have a different annotation that it is more restrictive compared to the audience classification of the class. Example: A class might be `InterfaceAudience.Public`, but a method may be `InterfaceAudience.LimitedPrivate`

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static @interface`
`InterfaceAudience.LimitedPrivate`
Intended only for the project(s) specified in the annotation.
`static @interface`
`InterfaceAudience.Private`
Intended for use only within a given project.
`static @interface`
`InterfaceAudience.Public`
Intended for use by any project or application.

## Method Summary

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`