I have a method that works, but give me a warning, is there any solution to remove it, cleanly?
In this method I call the method :
<T extends SonarContainPaging> T getSonarObjectFromPage(String url, Map<String, Object> uriVariables, Class<T> klass, List<T> page)
That return an object that extends SonarContainPaging.I try to add an object that extends SonarContainPaging to my list, but I get a warning.
The
SonarContainPaging
object has a methodcanContinuePaging
that takes a page integer and return a boolean.
The warning:
Type safety: Unchecked cast from SonarContainPaging to T
private <T extends SonarContainPaging> void getSonarListContainingPaging(String url, Map<String, Object> uriVariables,
Class<T> klass, List<T> list) {
int page = 1;
SonarContainPaging sonarObject = getSonarObjectFromPage(url, uriVariables, klass, page);
page++;
list.add((T)sonarObject); // Warning
while (sonarObject.canContinueLooping(page)) {
sonarObject = getSonarObjectFromPage(url, uriVariables, klass, page);
page++;
list.add((T) sonarObject); // Warning
}
}
Any solution you can think of?
The solution given by @Sweeper is to change the type of sonarObject to T
The error I made, was assuming that a generic T
object could not call method from its parent.