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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T08:02:12+00:00 2026-05-13T08:02:12+00:00

I am working with a 3rd party framework and it turns out I need

  • 0

I am working with a 3rd party framework and it turns out I need to wrap some of its objects as a delegate to one of my classes.

class Foo { // 3rd party class.
    protected void method() {}
}

class FooWrapper extends Foo {
    private Foo mDelegate;

    public FooWrapper(Foo inDelegate) {
        mDelegate = inDelegate;
    }

    protected void method() {
        mDelegate.method(); // error can't access protected method() of mDelegate
    }
}

So there is the problem. I need to delegate this method to the internal object but its protected and therefore not accessible.

Any ideas on ways to solve this particular problem? This is for Java 1.3.

  • 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-13T08:02:13+00:00Added an answer on May 13, 2026 at 8:02 am

    Why are you constructing a separate instance of Foo? FooWrapper is already a Foo.

    class Foo {
        protected void method() {}
    }
    
    class FooWrapper extends Foo {
    
        protected void method() {
            super.method();
        }
    }
    

    Edit: if you really have to have separate instance, one way (albeit slightly ugly) is to use reflection:

    public class Foo {
    
        protected void method() {
            System.out.println("In Foo.method()");
        }
    }
    
    public class FooWrapper extends Foo {
    
        private Foo foo;
    
        public FooWrapper(Foo foo) {
            this.foo = foo;
        }
    
        public void method() {
            try {
                Method m = foo.getClass().getDeclaredMethod("method", null);
                m.setAccessible(true);
                m.invoke(foo, null);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    Edit2: Based on your comment below, have two sub-classes of Foo, one that simply provides public versions of the protected methods, and one that has overrides all of the important methods. The first will look and act exactly like a Foo, the second can do whatever you need doing:

    public class Foo {
    
        protected void method() {
            System.out.println("In Foo.method()");
        }
    }
    
    public class DelegateFoo extends Foo {
    
        public void method() {
            super.method();
        }
    }
    
    public class FooWrapper extends Foo {
    
        private DelegateFoo foo;
    
        public FooWrapper(DelegateFoo foo) {
            this.foo = foo;
        }
    
        public void method() {
            foo.method();
            /* extra logic here */
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm working with a 3rd party system to implement some forms in a website.
I'm working with a 3rd party c# class that has lots of great methods
Unfortunately, I'm working with some 3rd party javascript, which inserts links into my pages.
I'm having some issues where, when working with a 3rd party's application's database I
We are working with a 3rd party PHP engine that gets regular updates. The
I’ve been working on a function parsing 3rd party fms logs. The logs are
I'm working on an interface with a 3rd party app that basically needs to
I am working on a web app which makes use of a 3rd party
I am working with a 3rd party that wants to send info via url
We are working on using a 3rd party's ActiveX control within a web page.

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.