rspec/rules/S5993/java/rule.adoc
Fred Tingaud 16f6c0aecf
Inline adoc when include has no additional value (#1940)
Inline adoc files when they are included exactly once.

Also fix language tags because this inlining gives us better information
on what language the code is written in.
2023-05-25 14:18:12 +02:00

49 lines
1019 B
Plaintext

== Why is this an issue?
Abstract classes should not have public constructors. Constructors of abstract classes can only be called in constructors of their subclasses. So there is no point in making them public. The ``++protected++`` modifier should be enough.
=== Noncompliant code example
[source,java]
----
public abstract class AbstractClass1 {
public AbstractClass1 () { // Noncompliant, has public modifier
// do something here
}
}
----
=== Compliant solution
[source,java]
----
public abstract class AbstractClass2 {
protected AbstractClass2 () {
// do something here
}
}
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
* Primary message: Change the visibility of this constructor to "protected".
* Secondary message: This class is "abstract".
=== Highlighting
* primary location: the ``++public++`` modifier
* secondary location: the ``++abstract++`` keyword
endif::env-github,rspecator-view[]