【发布时间】:2023-03-06 06:31:01
【问题描述】:
我有接口:
public interface Car{
public void drive();
}
实现汽车的类:
public class SuperCar implements Car{
@Override
public void drive(){
}
}
使用 Car 作为方法参数的类
public class CarDealer{
public void sellCar( Car car)
}
我不想使用 getDeclaredMethod 以 SuperCar 作为参数来调用 sellCar 方法,但由于不同,它没有找到它参数类型(Car vs SuperCar)
public sellCarTest(){
SuperCar superCar = new SuperCar();
CarDealer carDealer = new CarDealer();
Class dealer = CarDealer.class;
Class[] args = Class[1];
args[0] = superCar.getClass();
Method m = dealer.getDeclaredMethod("sellCar", args);
m.setAccessible(true);
m.invoke(carDealer, superCar);
}
编辑
实际上我已经看到粘贴在接受的答案中的一段代码,但它仍然没有给我正确的答案。
我在这里找到了答案Testing private method using power mock which return list of Integers
【问题讨论】:
-
使用
args[0] = Car.class;
标签: java unit-testing reflection