我有一个界面如下
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
方法中检查instanceOf
AccessController
interface
driver()
是否属于其他类?
答案 0 :(得分:1)
您可以将调用者传递给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