【发布时间】:2021-08-11 18:25:43
【问题描述】:
package com.foo;
public abstract class A {
private functionA() {
}
static class B {
A a;
public functionB() {
a.functionA();
}
}
所以,我需要从不同的包中测试 functionA(),但我不能对 A 类或作为约束的包 com.foo 进行任何更改。我正在尝试进行静态导入,以便可以从该包外部访问静态嵌套类 B,但它给了我“找不到符号,符号:静态 B,A 类”的错误,我尝试导入静态 com.foo。 A.* 也是,但在测试类中写入 B.functionB() 时,我收到错误“在测试类中找不到符号 B”。请在下面找到 Test 类语法:
package com.foo.test;
import static com.foo.A.B;
public class Test {
B.functionB();
}
还有其他方法可以从包外部测试 functionA() 或 functionB() 吗?
【问题讨论】:
-
类
A无法编译。functionB不是静态方法。你到底想做什么? -
你需要一个
B的实例来调用functionB() -
这只是一个示例代码,不能把实际代码放在这里,所以A类编译并且函数B只使用A类的实例调用函数A
-
是的,我需要一个 B 的实例来调用 functionB 我正在尝试静态导入,因为它表明 import static com.foo.A.B 应该可以工作,但在我的情况下它给出了未找到的符号错误。
-
这对我有用..不确定这是否是您正在尝试的。 1. B 是 A 内的公共静态嵌套类 2. 在其他包中,我导入了
import foo.A; 3.然后使用new A.B()创建B类的新实例,B的这个实例可以调用functionB
标签: java loops inner-classes static-import