由CompilationUnit得到SuperClass的方法

做BTF项目的时候, 要判断一个类是否继承了某个指定类.

由于类还是在Eclipse的JDT中, 没有被Load, 所以java.lang.Class.getSuperclass()不中了.

查找一番原来可以通过CompilationUnit获取org.eclipse.jdt.core.IType,

然后IType.newSupertypeHierarchy(*)得到ITypeHierarchy, 继而就能用ITypeHierarchy.getSuperclass(IType)得到其超类了.

IType[] types = ((ICompilationUnit)javaElement).getTypes();
    if(null != types && types.length > 0){
         ITypeHierarchy typeHierarchy = types[0].newSupertypeHierarchy(null);
             IType superclass = typeHierarchy.getSuperclass(types[0]);
                if(superclass instanceof ResolvedBinaryType){
                 …

                  }
         }
}

站着撒尿的时候要打喷嚏怎么办

人, 一生中多多少少都有那么一到几次机会: 站着撒尿的时候,突然想打喷嚏.

今天我就碰到了这个情况, 很失败, 由于打喷嚏的时候身体不能控制的抖动, 导致了尿液乱飞, 滴在酒店单薄的一次性拖鞋上……

经历了这次惨痛的教训, 我开始思考: 如何站着撒尿的时候打喷嚏.

经过理论推演, 我认为: 要打喷嚏的时候捏住JJ的下端(即输尿管)能快速有效的制止尿流, 继而顺利打喷嚏, 手放松后JJ回复正常排泄.

由于站着撒尿的时候打喷嚏的场景难以重现, 以上推理没有得到实际论证.

各位男(女)同胞们, 可有此类经历或心得?