ensure all fields are set in the constructor
Map Key
Checker to track which values are keys in a map
Interning Checker for errors in equality testing and interning
Lock Checker for concurrency and lock errors
Fake Enum Checker to allow type-safe fake enum patterns and type aliases or typedefs
Tainting Checker for trust and security errors
Regex Checker to prevent use of syntactically invalid regular expressions
Format String Checker to ensure that format strings have the right number and type of % directives
Internationalization Format String Checker to ensure that i18n format strings have the right number and type of {} directives
Property File Checker to ensure that valid keys are used for property files and resource bundles
Internationalization Checker to ensure that code is properly internationalized
Signature String Checker to ensure that the string representation of a type is properly used, for example in Class.forName
GUI Effect Checker to ensure that non-GUI threads do not access the UI, which would crash the application
Units Checker to ensure operations are performed on correct units of measurement
Signedness Checker to ensure unsigned and signed values are not mixed
Constant Value Checker to determine whether an expression’s value can be known at compile time
Aliasing Checker to identify whether expressions have aliases
Linear Checker to control aliasing and prevent re-use
Subtyping Checker for customized checking without writing any code