有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

泛型Java接口反射

我的问题主要是关于如何创建一个“动态”方法,我可以为不同的对象覆盖它

所以有了这个界面

public interface GenericInterface{

    public List<Object> getAll() throws Exception;

    public Object addObject(Object object) throws Exception; // This should use reflection

}

现在在另一个接口中扩展GenericInterface

public interface CarInterface extends GenericInterface{

     @Override
     List<Object> getAll() throws Exception;

     @Override
     public Object addObject(Object object) throws Exception;


     public Object newSpecificMethod() throws Exception;

}

现在有一个公共课

pulic Car implements CarInterface{
     //...

     @Override
     public Object addObject(Object object) throws 

          //.. here some logic

          return object;
     }

     //...
}

那么,我如何“覆盖”该方法的名称呢

而不是

Car.addObject(object);

我想要

Car.addCar((Car) object);

我知道这与反思有关,但我不知道该怎么做。有什么建议吗


共 (1) 个答案

  1. # 1 楼答案

    使用泛型:

    public interface GenericInterface<T>{
    
        public List<T> getAll() throws Exception;
    
        public T addObject(T object) throws Exception;
    }
    
    public interface CarInterface extends GenericInterface<T>{
        public Object newSpecificMethod() throws Exception;
    }