将instanceof与来自不同类的静态内部类一起使用

时间:2010-09-22 00:36:38

标签: java inner-classes

public class A {
    static class B {
    }
}

public class C {
   void m(X x) {
      if (x instanceof A.B) { ... } // not working
   }
}

在这种情况下,有没有办法验证某个对象(x)是否实际上是某个类(A)的内部类(B)?

我收到了这个错误,但遗憾的是我无法控制A和B类。

  

A.B类型不可见

1 个答案:

答案 0 :(得分:3)

我把这个答案作为一个评论,但有点反思(思考的那种,而不是编码类型!),我把它变成了答案。

由于您无法控制A或B,并且B具有包访问权限,因此您只能从与A相同的包中的类中看到它。那么您可以做什么 - 如果您不想将C移动到同一个包中 - 写一个实用程序类 - 称之为U - 具有布尔函数,取一个X并返回它是否是AB的实例