有 Java 编程相关的问题?

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

java动态方法调度

互联网上有很多关于动态调度的信息,我感觉自己像一只鸡,因为我无法实现它。请帮帮我。以下是我想做的

ClassA{

    public void createReq(){
    }

    public String postReq(){
    }

}

ClassB{

@Test
public void myTest(){
Class A = new ClassA();
a.createReq();
String test = a.getResponse();

/* Not sure how do i do this part */

}

因此,我在myTest方法中得到一个字符串'test'。我想创建一个扩展ClassBClassC,并编写一个方法,在步骤(a.getResponse())之后不久验证myTest中返回的字符串

如果没有ClassC实现,我只想简单地结束测试。如果只有ClassC存在并实现了一个验证方法,我希望验证能够完成

我该怎么做?请帮忙。谢谢


共 (1) 个答案

  1. # 1 楼答案

    尝试用反射加载ClassC。 如果尝试失败,则ClassC不存在,因此默认情况下验证正常。 如果ClassC存在,请尝试找到合适的方法,并用反射调用它。 如果找不到该方法,那么验证在默认情况下也可以(我猜)。 如果找到了方法,对它的调用返回true,那么就完成了验证。如果此调用返回false,则验证失败

    查看这些链接,我想你应该明白我的意思

    http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#forName%28java.lang.String%29

    http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getMethod%28java.lang.String,%20java.lang.Class...%29

    http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html#invoke%28java.lang.Object,%20java.lang.Object...%29