Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
511 views
in Technique[技术] by (71.8m points)

polymorphism - Java : set generic parameters for a method

I have a method that can take ResponseEntity as parameter.

private ResponseEntity<OfferRest> mappedOfferByImagesEnabled(
        ResponseEntity<OfferRest> offerResponse) {

    for (OfferDetailImageRest image : 
                offerResponse.getBody().getOfferDetail().getImages()) {

        if (image.getDisabled()) {
            return offerResponse;
        }
    }
    return null;
}

I have the same method with another parameters: OfferEnity and I don't have need to call getBody() like the other one.

private OfferEntity mappedOfferByImagesEnabled(OfferEntity offerEntity) {
    for (OfferDetailImageEntity image : 
                 offerEntity.getOfferDetail().getImages()) {

        if (image.getDisabled()) {
            return offerEntity;
        }
    }
    return null;
}

My idea is to have a method with one (generic) parameter. Basing on the settings instance I will run the convenient code.

My question, How can I do it?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can create a method with OfferDetail parameter

public boolean isImageDisabled(OfferDetail offerdetail) {
  return offerdetail.getImages().stream().anyMatch(Image::getDisabled));
 }

And the use it

isImageDisabled(offerEntity.getOfferDetail());
isImageDisabled(offerResponse.getBody().getOfferDetail());

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...