private T doGetSingleton(String name, Class requiredType) throws NamingException {
Map var3 = this.singletonObjects;
synchronized(this.singletonObjects) {
Object jndiObject;
if (this.singletonObjects.containsKey(name)) {
jndiObject = this.singletonObjects.get(name);
if (requiredType != null && !requiredType.isInstance(jndiObject)) {
throw new TypeMismatchNamingException(this.convertJndiName(name), requiredType, jndiObject != null ? jndiObject.getClass() : null);
} else {
return jndiObject;
}
} else {
jndiObject = this.lookup(name, requiredType);
this.singletonObjects.put(name, jndiObject);
return jndiObject;
}
}
}
问题1 、方法返回类型为范型T,为什么可以return的是Object,而且并未用强转
问题2、Object jndiObject;作为局部变量为什么不需要给定一个初始值