如何检查类中的调用方法是否是接口的实例?

时间:2017-12-21 00:29:58

标签: java

我有一个界面如下

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()是否属于其他类?

1 个答案:

答案 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
相关问题