我的接口如下
public interface AccessController {
}
我的课程如下
public class LocalDriver {
WebDriver driver;
public static WebDriver driver() {
if ("need to know?" instanceof AccessController)
return driver;
else
return null;
}
}
然后我有一个呼叫者类
public class CallerClass {
public static void main(String[] args) {
LocalDriver.driver();
}
}
现在如何检查CallerClass
是否是AccessController
CC_3 driver()
中的CC_3方法?
您可以将呼叫者传递到您的static
方法中并进行询问。类似:
public static WebDriver driver(Object caller) {
if (caller instanceof AccessController)
return driver;
else
return null;
}
您将以以下方式使用它:
// In the caller
LocalDriver.driver(this);
如果您还需要从静态上下文中支持此概念,则可以尝试:
public static WebDriver driver(Class<?> callerClass) {
if (caller.isAssignableFrom(AccessController.class))
return driver;
else
return null;
}
这可以从两种情况下称为:
LocalDriver.driver(this.getClass()); // instance context
LocalDriver.driver(CallerClass.class); // static context