public class UpdateDetails<REQ extends ReferenceRequest> extends ExecuteStep<Context, REQ> {
}
The syntax just feels very odd to me. I am not even sure what exactlty REQ is. I do not see that used anywhere else in the class.
>Solution :
REQ is a generic type parameter.
It doesn’t have to be used in the UpdateDetails class. It is passed to the ExecuteStep super class, which might use it.
Suppose SomeReferenceRequest is a class that implements or extends ReferenceRequest.
You can instantiate your class with:
UpdateDetails<SomeReferenceRequest> details = new UpdateDetails<> ();
The super class ExecuteStep might have methods that return REQ or have REQ argument[s], or it might have instance variables of type REQ.