How can I return different types in one method and make set operations above them?
For example, I have a few similar classes: AddDeveloperResponse, EditDeveloperResponse, DeleteDeleveloperResponse
In general, I had 3 methods, where I return these different classes, but I think it can make this stuff in a single method
They contain the same fields:
@Getter
@Setter
@ToString
@EqualsAndHashCode
public class DeleteDeveloperResponse extends DeveloperResponseBaseEntity<DeleteDeveloperResponse >{
private long id;
private BigDecimal salary;
private String message;
}
I created a basic class, but I don't know how to connect them correctly:
@Getter
@Setter
public abstract class DeveloperResponseBaseEntity<T> {
private long id;
private BigDecimal salary;
private String message;
}
Here is my method, this should look like:
public <T extends > T getDeveloperResponseFromDeveloper(Developer developer) {
T response = new T(); //but we can't create object of Generic
// OR T response = new DeveloperResponseBaseEntity<T>;
response.setId(developer.getd());
//other set operations
return response;
}
And I want to invoke this method with different classes, for example:
AddDeveloperResponse addDevResponse = userMapper.getDeveloperResponseFromDeveloper(Developer);
EditDeveloperResponse editDevResponse = userMapper.getDeveloperResponseFromDeveloper(Developer);
//OR
EditDeveloperResponse editDevResponse = userMapper.<EditDeveloperResponse>getDeveloperResponseFromDeveloper(Developer);
If you can, just explain to me how it should work generally in java
If you know related topics, send them in comments, I will be grateful for any help