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 7183881
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T18:05:11+00:00 2026-05-28T18:05:11+00:00

I have a package-private interface called AbstractServer which offers three methods: start() , stop()

  • 0

I have a package-private interface called AbstractServer which offers three methods: start(), stop() and init().

For every new server, I implement the interface and override those methods. After that, I register this new server to my public ServerManager-class, which collects all servers in a HashMap and calls their exposed methods in a certain order.

So, starting all registered servers from somewhere else in the code simply looks like this:

ServerManager.INSTANCE.startServers();

The problem I’m currently facing is, that I want to be able to remove a Server from the ServerManagers map.

My idea was to introduce a public static final String IDENTIFIER-field to the interface and use it as the keys in the HashMap. This way, to remove a Server from the ServerManager, I would write:

ServerManager.INSTANCE.removeServer(HttpServer.IDENTIFIER);

The problem is, that I can’t have an “abstract” attribute in the interface and therefore can’t force the implementations to override it.

I can also not use a normal method (non-static) because the constructor of the Server-implementations will be package-private.

As an alternative, I thought about using the Class of the implementations as the keys in the HashMap so I can write something like this:

ServerManager.INSTANCE.removeServer(HttpServer.class);

Any thoughts on this?

  • 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-28T18:05:12+00:00Added an answer on May 28, 2026 at 6:05 pm

    If you know there’s ever going to be at most one instance per implementing class, then using the Class object as the key is a pretty natural solution.

    If you don’t, then clearly the IDs would have to be instance-specific and not class-specific.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a package private implementation of an Interface, the methods defined in that
If I have a java class which is package-private (declared with class, not public
I have an SSIS package, which depending on a boolean variable, should either go
I have an interface like the following: package example; import java.awt.Point; public interface Thing
I have a package that I just made and I have an old-mode that
I have a package with logic classes(like CheckAuthenticationDataLogic.java, GetVocabulariesLogic.java). And another class - ApiService.java
I have a package with a few modules, each module has a class (or
Say I have a package mylibrary. I want to make mylibrary.config available for import,
My current requirement is: I have to package my grails app and use teamcity
Lucky me, I have to work with Oracle. And packages. I have a package

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.