Java 泛型类定义
这是一次很好的讨论 但是他们都讨论了类如何接受泛型类型变量。我的问题是泛型类型类定义 该类定义为Java 泛型类定义,java,class,templates,generics,variables,Java,Class,Templates,Generics,Variables,这是一次很好的讨论 但是他们都讨论了类如何接受泛型类型变量。我的问题是泛型类型类定义 该类定义为 protected final <T> T getBeanFromSpringContext(String name, Class<T> requiredType) { if(springApplicationContext != null) { return springApplicationContext.getBean(name, require
protected final <T> T getBeanFromSpringContext(String name, Class<T> requiredType) {
if(springApplicationContext != null) {
return springApplicationContext.getBean(name, requiredType);
} else {
return null;
}
}
protectedfinal T getBeanFromSpringContext(字符串名称,类requiredType){
if(springApplicationContext!=null){
返回springApplicationContext.getBean(名称,requiredType);
}否则{
返回null;
}
}
现在我知道返回类型是T
。但是在这之前是由这个类对象建模的类的类型。为什么这不是
,因为我不知道类型
由于返回类型是T
。这个类能否像上面提到的那样返回null
?前面的
是一个声明,说明该方法是泛型的,并且它有一个类型参数T
——也就是说,它是一个
可能有点不同:
protected final <T extends Collection> T getBeanFromSpringContext(String name, Class<T> requiredType) {
if(springApplicationContext != null) {
return springApplicationContext.getBean(name, requiredType);
} else {
return null;
}
}
protectedfinal T getBeanFromSpringContext(字符串名称,类requiredType){
if(springApplicationContext!=null){
返回springApplicationContext.getBean(名称,requiredType);
}否则{
返回null;
}
}
这不仅意味着您有一个类型参数,还将对其值设置一些约束“边界”
更新:现在,在null
部分。不幸的是,所有非原语类型在Java中都表示“thistype或null
”。所以,是的,您总是可以返回null。你总是可以得到一个NPE
顺便说一句,我更喜欢这种单行样式:
return-springApplicationContext==null?null:springApplicationContext.getBean(名称,requiredType)代码>