Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 626363
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T19:24:39+00:00 2026-05-13T19:24:39+00:00

So I made a mistake. When originally writing a signature for an API, I

  • 0

So I made a mistake.

When originally writing a signature for an API, I created something like this:

public JellyBeanResult getJellyBeanReport();

Now, it turns out that I would like to re-use the more specific JellyBeanResult object because of its functionality, but it would be confusing to have other functions return a type named for a different process. There are a couple of ways to fix this that I can think of. I could re-name the return type to something more generic:

public GenericResult getJellyBeanReport();
public GenericResult getChocolateBarReport();

but that would break any code that is using the API. I could create a new, more accuratly named class that extends SpecificResult that more closely fits the new function:

public class ChocolateBarResult extends JellyBeanResult{};

public JellyBeanResult getJellyBeanReport();
public ChocolateBarResult getChocolateBarReport();

But this is really, really ugly and the problem still sticks around if I want to to use the return type again down the road. How can I clean up these signatures to make them less confusing without breaking any code that is using them?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T19:24:40+00:00Added an answer on May 13, 2026 at 7:24 pm

    Move the core functionality from JellyBeanResult to GenericResult and have JellyBeanResult extend GenericResult:

    public class JellyBeanResult extends GenericResult {}
    
    public JellyBeanResult getJellyBeanReport();
    public GenericResult getChocolateBarReport();
    

    or if you want to be completely consistent:

    public class JellyBeanResult extends GenericResult {}
    public class ChocolateBarResult extends GenericResult {}
    
    public JellyBeanResult getJellyBeanReport();
    public ChocolateBarResult getChocolateBarReport();
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I do not mean the compile errors because I made a syntax mistake or
I am an intermediate C programmer. If you have made any coding mistake that
I made a class that derives from Component: public class MyComponent: System.ComponentModel.Component { }
I made the mistake of modifying my original source after importing it into subversion.
Made solution change: I am trying to display a html table of data.. In
I made a view to abstract columns of different tables and pre-filter and pre-sort
I made a class from Linq to SQL Clasees with VS 2008 SP1 Framework
I made a Java Applet with some Standard GUI Components on it. I used
I made a discovery some time back. Just follow these steps: Create a .doc/.xls/.ppt
I made a code that translate strings to match each word from the array

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.