公司有个框架,由程序员写一个抽象类,抽象类是继承了框架的一个抽象类。比如abstract void setUser()和abstract User getUser(),框架就能实现这个方法并调用,程序员在自己的业务逻辑层就可以直接使用getUser来获得实体。很好奇框架是怎么实现继承程序员的抽象类,并实现的。请教一下大家,谢谢!

解决方案 »

  1.   

    我说的反射是指Class.forName(String)
      

  2.   

    不知道这样你能看懂么
    public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    try {
    Class<?> cls = Class.forName("ref.ActionImpl");
    ActionImpl obj = (ActionImpl) cls.newInstance(); obj.dosomething();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } }}interface IAction {
    void dosomething();
    }class ActionImpl implements IAction { @Override
    public void dosomething() {
    System.out.println("hello world.");
    }}
      

  3.   

    forName带了包名, 你自己修改下
      

  4.   

    哈哈,谢谢你的热心帮忙,反射我知道,但是总的有人去实现Action里面的抽象方法即ActionImpl。程序员没有实现ActionImpl,是我说的那个框架去实现,问题是框架如何去实现。