无法在另一个类中执行两个不同类的方法

时间:2017-07-22 11:07:24

标签: java debugging inheritance

我无法在其他第一类方法中调用两个不同类的两个不同方法已成功执行但下一个方法无法执行。

public class Class1 extends Classn {
    @Test
    public void Method1 () {
        // method detailing...
    }
}

public class Class2 extends Classn {
    @Test
    public void Method2 () {
        // method detailing...
    }
}

public class Class3 extends Class1 {
    @Test
    public void Method3() { 
        Class1 cs1 = new Class1();
        Class1.Method1();
        Class2 cs2 = new Class2();
        cs2.Method2();
    }
}

此处方法2 Class3 中的 Method1 之后未执行。请任何人告诉我在这里错过了什么。

3 个答案:

答案 0 :(得分:1)

如果在Class1.Method1()中断言失败;然后下一行将不会执行 因此下面的行不会被执行。

df

答案 1 :(得分:1)

以下是您的问题的答案:

首先,您的代码无法编译,因为在Class3课程中您尝试直接从Method1()访问Class1。由于Method1()是非静态的,因此会显示Compilation Errors

解决方案:有两种解决方案。

  1. 您可以从Method1()访问Class1cs1对象Class1,如下所示:

    @Test
    public void Method3()
    { 
        Class1 cs1 = new Class1();
        cs1.Method1();
        Class2 cs2 = new Class2();
        cs2.Method2();
    }
    
  2. 否则,您必须在Method1() Class1中声明staticMethod1()直接访问@Test public static void Method1 () { System.out.println("Within Child : Class1"); } ,如下所示:

    Method1()

    然后,您可以直接访问Class1的{​​{1}},如下所示:

    @Test
    public void Method3()
    { 
        Class1 cs1 = new Class1();
        Class1.Method1();
        Class2 cs2 = new Class2();
        cs2.Method2();
    }
    
  3. 如果这回答你的问题,请告诉我。

答案 2 :(得分:0)

我错过了我的代码。我在class1和class2的两个方法中使用了@Test,因此在class3中我的第二个方法没有被调用。在这里,我为此做了,现在它工作正常。

public class Class1 extends Classn {
    @Test <@Test removed from here>
    public void Method1 () {
        // method detailing...
    }
}

public class Class2 extends Classn {
    @Test <@Test removed from here>
    public void Method2 () {
        // method detailing...
    }
}

public class Class3 extends Class1 {
    @Test
    public void Method3() { 
        Class1 cs1 = new Class1();
        Cs1.Method1(); <Here i did typo mistake in my question>
        Class2 cs2 = new Class2();
        cs2.Method2();
    }
}
相关问题