Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

JApplet type checking?

Posted on 2004-08-20
14
Medium Priority
?
234 Views
Last Modified: 2010-03-31
I am a little new to Java and I am trying to use inheritance, I am making a Generic Frame that can be called from a few applets that I have.  I am passing the JApplet into the JFrame, and I would just like to check what type it is?

So I would like to check weather the mApplet_t object is either of class type Applet1, Applet2 or Applet3

     switch mApplet_t.getClass()
     {
        case (ClassTYPE)Applet1:
                (Applet1)mApplet.funcForApplet1();
        break;
        case (ClassTYPE)Applet2:
                (Applet2)mApplet.funcForApplet2();
        break;
        case (ClassTYPE)Applet3:
                (Applet3)mApplet.funcForApplet3();
        break;
     }

This is what I want to do, but I can't seem to find any documentation on how to do it.  Thanks experts.
0
Comment
Question by:kesea
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
  • 3
14 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 11852090
Use instanceof
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 2000 total points
ID: 11852112
if (applet instanceof Applet1) {
    // do it
}
else if ...

etc.
0
 
LVL 20

Expert Comment

by:Venabili
ID: 11852327
But you cannot use switch for this. You should use if-else structure as CEHJ showed above.
0
Build and deliver software with DevOps

A digital transformation requires faster time to market, shorter software development lifecycles, and the ability to adapt rapidly to changing customer demands. DevOps provides the solution.

 
LVL 86

Expert Comment

by:CEHJ
ID: 11852601
!!???
0
 
LVL 20

Expert Comment

by:Venabili
ID: 11852605
kesea ,

This should be a split or all points should go to CEHJ. Want the question to be reopened so you can redestribute the points?

Venabili
0
 
LVL 92

Expert Comment

by:objects
ID: 11856833
As the calls are being made from seperate appets, you can avoid having an if statement at all by having the applets call the seperate methods directly.

0
 
LVL 92

Expert Comment

by:objects
ID: 11856863
> (Applet1)mApplet.funcForApplet1();
> (Applet2)mApplet.funcForApplet2();
> (Applet3)mApplet.funcForApplet3();

In fact why don't you make the method name the same in all three applets.
Then you wouldn't need an if and could just use:

mApplet.funcForApplet();

0
 
LVL 20

Expert Comment

by:Venabili
ID: 11856870
objects, read the question :)

The object name is mApplet_t

mApplet seems to be just a class with all the methods in it :)
0
 
LVL 92

Expert Comment

by:objects
ID: 11857086
> mApplet seems to be just a class with all the methods in it :)

then why is casting needed?
And the fact that they are trying to use inheritance also seems to suggest that a design change would remove the need for any conditional code.
0
 
LVL 92

Expert Comment

by:objects
ID: 11857132
you can create an interface defing the method:

public interface MyInterface
{
   public void funcForApplet();
}

public class Applet1 extends JApplet implements MyInterface
{
   public void funcForApplet()
   {
      // do whatever
   }
   ...
}
public class Applet2 extends JApplet implements MyInterface
{
   public void funcForApplet()
   {
      // do whatever
   }
   ...
}
public class Applet3 extends JApplet implements MyInterface
{
   public void funcForApplet()
   {
      // do whatever
   }
   ...
}

and then you no longer need a switch or if and can just use:

((MyInterface)mApplet_t).funcForApplet();
0
 
LVL 92

Expert Comment

by:objects
ID: 11861882
Can you explain why my solution would not help, especially considering you are trying to use inheritance?
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 11863570
objects' answer is best (can't think why i didn't think of it myself ;-))
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
Suggested Courses

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question