我有一个静态类'Inner'和一个嵌套的静态类'Deeper',分别位于两个不同的类A,B中。 “内部”类实现特征C,该特征C具有称为ping()的方法。 我想从ping()方法执行方法hello()(属于Deeper),这种方式每次我都会根据调用trait的类获得“ Hello A”或“ Hello B”。 这是我写的(我正在使用katalon-studio):
public class A
{
static class Inner implements C{
static class Deeper{
static void hello(){ println 'Hello A'}
}
}
}
public class B
{
static class Inner implements C{
static class Deeper{
static void hello(){ println 'Hello B'}
}
}
}
public static trait C {
static void ping() {
this.Deeper.hello()
}
}
A.Inner.ping()
B.Inner.ping()
我遇到以下错误:
08-17-2018 04:46:57 PM-[错误]-测试用例/ V2 /常规/草稿失败 因为未为测试用例定义(of)变量'Deeper'。
答案 0 :(得分:0)
考虑以下代码:
class A implements C {}
class B implements C {}
trait C {
def whoAmI() {
this.class.simpleName
}
}
// ---- main
assert "A" == new A().whoAmI()
assert "B" == new B().whoAmI()
答案 1 :(得分:0)
找不到答案。但是,使用非静态类可以按以下方式实现:
public class A{
class Inner implements C{
A.Inner.Deeper d = new A.Inner.Deeper()
class Deeper {
void hello(){
println 'Hello A'
}
}
}
}
public class B{
class Inner implements C{
B.Inner.Deeper d = new B.Inner.Deeper()
class Deeper{
void hello(){
println 'Hello B'
}
}
}
}
public trait C{
public void ping(){
this.d.hello()
}
}
new A.Inner().ping()
new B.Inner().ping()