Hallo zusammen.
Hier ersteinmal meine Ausgangssituation :
Es gibt ein allgemeines Interface Association :
Die Klasse defaultAssociation implementiert das Interface
Es wird hier jedes Season Objekt übergeben werden können. Allerdings möchte ich dass, die DefaultAssociation Klasse nur Objekete vom Typ DefaultSeason verarbeiten kann.
Hier mein Versuch :
Aber das klappt leider nicht.
Kann mir jemand einen Tipp geben ?
Vielen Dank !
Hier ersteinmal meine Ausgangssituation :
Es gibt ein allgemeines Interface Association :
Java:
public interface IAssociation extends IObject {
/**
* @return a list with season objects
*/
List<ISeason> getSeasonList();
/**
* add a new season object
*
* @param season
* @return the added season object or an empty optional
*/
Optional<ISeason> addSeason(ISeason season);
}
Die Klasse defaultAssociation implementiert das Interface
Java:
public class DefaultAssociation implements IAssociation {
@NonNull
private final String name;
@NonNull
private final List<ISeason> seasonList = Lists.newArrayList();
@Override
public Optional<ISeason> addSeason(ISeason season) {
Optional<ISeason> optionalSeason = seasonList.stream().filter(s -> s.equals(season)).findFirst();
Optional<ISeason> tmpSeason = Optional.empty();
if (!optionalSeason.isPresent()) {
//TODO add logging
seasonList.add(season);
tmpSeason = Optional.ofNullable(season);
}
return tmpSeason;
}
}
Es wird hier jedes Season Objekt übergeben werden können. Allerdings möchte ich dass, die DefaultAssociation Klasse nur Objekete vom Typ DefaultSeason verarbeiten kann.
Hier mein Versuch :
Java:
@Override
public <T extends DefaultSeason> Optional<T> addSeason(T season) {
Optional<T> optionalSeason = seasonList.stream().filter(s -> s.equals(season)).findFirst();
Optional<T> tmpSeason = Optional.empty();
if (!optionalSeason.isPresent()) {
//TODO add logging
seasonList.add(season);
tmpSeason = Optional.ofNullable(season);
}
return tmpSeason;
}
Aber das klappt leider nicht.
Kann mir jemand einen Tipp geben ?
Vielen Dank !