Inspectopedia Help

Inheritance issues

Abstract class extends concrete class  

Reports abstract classes that extend concrete classes.

Abstract class which has no concrete subclass  

Reports abstract classes that have no concrete subclasses.

Abstract class without 'abstract' methods  

Reports abstract classes that have no abstract methods.

Abstract method overrides abstract method  

Reports abstract methods that override abstract methods.

Abstract method overrides concrete method  

Reports abstract methods that override concrete super methods.

Abstract method with missing implementations  

Reports abstract methods that are not implemented in every concrete subclass.

Class explicitly extends a 'Collection' class  

Reports classes that extend concrete subclasses of the java.util.Collection or java.util.Map classes.

Class extends annotation interface  

Reports classes declared as an implementation or extension of an annotation interface.

Class extends utility class  

Reports classes that extend a utility class.

Class may extend a commonly used base class  

Reports classes or interfaces that can be replaced with an implementation or extension of a more specific commonly used class or interface.

Final declaration can't be overridden at runtime  

Reports cases when your code prevents a class from being subclassed by some framework (for example, Spring or Hibernate) at runtime.

Interface which has no concrete subclass  

Reports interfaces that have no concrete subclasses.

Method does not call super method  

Reports methods that override a super method without calling it.

Method is identical to its super method  

Reports methods that are identical to their super methods.

Missing '@Override' annotation  

Reports methods overriding superclass methods but are not annotated with @java.lang.Override.

Non-varargs method overrides varargs method  

Reports methods that override a variable arity (a.k.a.

Parameter type prevents overriding  

Reports parameter types of a subclass method that have the same name as the parameter type of the corresponding super method but belong to a different package.

Public constructor in abstract class  

Reports public constructors of abstract classes.

Redundant interface declaration  

Reports interfaces in a class' implements list or an interface's extends list that are already implemented by a superclass or extended by a superinterface.

Static inheritance  

Reports interfaces that are implemented only to provide access to constants.

Type parameter extends 'final' class  

Reports type parameters declared to extend a final class.

Last modified: 18 June 2024