# Package javax.lang.model

Classes and hierarchies of packages used to model the Java programming language.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  AnnotatedConstruct | Represents a construct that can be annotated.

- Enum Summary
  Enum | Description
  --- | ---
  SourceVersion | Source versions of the Java™ programming language.

- Exception Summary
  Exception | Description
  --- | ---
  UnknownEntityException | Superclass of exceptions which indicate that an unknown kind of entity was encountered.

## Package javax.lang.model Description

Classes and hierarchies of packages used to model the Java programming language. The members of this package and its subpackages are for use in language modeling and language processing tasks and APIs including, but not limited to, the annotation processing framework.

This language model follows a mirror-based design; see

> Gilad Bracha and David Ungar. Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages. In Proc. of the ACM Conf. on Object-Oriented Programming, Systems, Languages and Applications, October 2004.

In particular, the model makes a distinction between static language constructs, like the element representing `java.util.Set`, and the family of types that may be associated with an element, like the raw type `java.util.Set`, `java.util.Set<String>`, and `java.util.Set<T>`.

Unless otherwise specified, methods in this package will throw a `NullPointerException` if given a `null` argument.

Since:
  1.6

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.