今天在项目源代码中看到有这么个方法
@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 它的用法是判断一个对象是否是这个类或接口,或子类,子接口的实例。嗯就酱...