mercredi 30 août 2017

Java Reflection Issue: java.lang.ClassNotFoundException

I have one class which takes classname in runtime and creates instance of that class. I have done this with reflection. Please see my code below

//Interface

   public interface DDInterface {
     public void process();
     }

// class which implements the interface

   package com.dd.august;
   public class DDClass implements DDInterface 
       {
       public void process()
        {
        System.out.println("Hello All");
         }
       }

//the main class [This works fine if I hard code inside Class.forName()] - scenario 1

        DDInterface ddInterface = 
           Class.forName("com.dd.august.DDClass").newInstance();
          ddInterface.process();

// But this way it does not work if I pass classname dynamically - scenario 2

        String className="com.dd.august.DDClass";
         DDInterface ddInterface = 
           Class.forName(className).newInstance();
          ddInterface.process();

The error I am getting from this is java.lang.ClassNotFoundException: com/dd/august/DDClass. All the 'packagename.classname' is changing in 'packagename/classname' which doesn't happen in scenario 1.

Anyone know how to resolve this?

Regards, Sharmi





Aucun commentaire:

Enregistrer un commentaire