今天在项目源代码中看到有这么个方法
@SuppressWarnings("unchecked") private Class<ServerRpc> getServerRpcInterface(Class<?> implementationClass) { Class<ServerRpc> serverRpcClass = null; if (implementationClass != null) { for (Class<?> candidateInterface : implementationClass .getInterfaces()) { if (ServerRpc.class.isAssignableFrom(candidateInterface)) { if (serverRpcClass != null) { throw new RuntimeException( "Use registerRpc(T implementation, Class<T> rpcInterfaceType) if the Rpc implementation implements more than one interface"); } serverRpcClass = (Class<ServerRpc>) candidateInterface; } } } return serverRpcClass; }
去查了差,原来是Object中的方法 意思是c1.isAssignableFrom(c2) 类c1 与类c2是否相同或者,c1是c2的父类或接口。
同时想到另一个问题,instanceof 它的用法是判断一个对象是否是这个类或接口,或子类,子接口的实例。嗯就酱...