我想在java中传递一个类作为参数。如何在 Java 中将类作为参数传递?
这就是我找到的答案,但这样做并不能做我想做的事。
我想做的是这样的:
public List<cls> getTouchingObjects(Class cls){
List<cls> thing;
//fill thing
return thing;
}
虽然它并不完全有效......知道我如何让它工作吗?
本Class
类需要一个泛型参数。所以与其通过Class cls
,不如通过Class<T> cls
。
public <T> List<T> getTouchingObjects(Class<T> cls){
List<T> thing;
//fill thing
return thing;
}
这允许您根据作为参数传递的类来指定返回类型。实现,仍然很可能使用自省。
当然,这仍然可以允许客户端将一个对您的上下文无意义的类传递。我想无论您的方法做什么,它都不适用于字符串,但没有什么可以阻止调用getTouchingObjects(String.class)
. 您还没有指定这些触摸对象通常具有什么类型,但为了举例,我假设它们应该是ChessPiece
. 在这种情况下,您可以像这样缩小方法范围:
public <T extends ChessPiece> List<T> getTouchingObjects(Class<T> cls){
List<T> thing;
//fill thing
return thing;
}
像那样,调用getTouchingObjects(String.class)
甚至不会编译,并且您进一步提高了类型安全性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句