rspec/rules/S1258/java/rule.adoc

45 lines
1.8 KiB
Plaintext
Raw Normal View History

Non-abstract classes and enums with non-``++static++``, ``++private++`` members should explicitly initialize those members, either in a constructor or with a default value.
2020-06-30 12:47:33 +02:00
== Noncompliant Code Example
----
class A { // Noncompliant
private int field;
}
----
== Compliant Solution
----
class A {
private int field;
A(int field) {
this.field = field;
}
}
----
== Exceptions
* Class implementing a Builder Pattern (name ending with "Builder").
* https://docs.oracle.com/javaee/7/tutorial/index.html[Java EE] class annotated with:
** https://docs.oracle.com/javaee/7/api/javax/annotation/ManagedBean.html[ManagedBean]
** https://docs.oracle.com/javaee/7/api/javax/ejb/MessageDriven.html[MessageDriven]
** https://docs.oracle.com/javaee/7/api/javax/ejb/Singleton.html[Singleton]
** https://docs.oracle.com/javaee/7/api/javax/ejb/Stateful.html[Stateful]
** https://docs.oracle.com/javaee/7/api/javax/ejb/Stateless.html[Stateless]
** https://docs.oracle.com/javaee/7/api/javax/jws/WebService.html[WebService]
** https://docs.oracle.com/javaee/7/api/javax/servlet/annotation/WebFilter.html[WebFilter]
** https://docs.oracle.com/javaee/7/api/javax/servlet/annotation/WebServlet.html[WebServlet]
* Class and field annotated with:
** https://codehaus-plexus.github.io/plexus-containers/plexus-component-annotations/index.html[Plexus Component Annotations]
** https://maven.apache.org/developers/mojo-api-specification.html[Maven Mojo]
* Field annotated with:
** https://docs.oracle.com/javaee/7/api/javax/annotation/Resource.html[Resource]
** https://docs.oracle.com/javaee/7/api/javax/ejb/EJB.html[EJB]
** https://docs.oracle.com/javaee/7/api/javax/inject/Inject.html[Inject]
** https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html[Autowired]