如何在java中将类作为参数传递

以利亚

我想在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中将类作为参数传递?

如何在Swift中将类作为参数传递?

如何在C ++中将类(不是对象)作为参数传递

如何在Java中将泛型列表类作为参数传递给泛型方法?

在Java中将接口类作为参数传递

如何在Java中将通用pbject作为方法参数传递?

如何在Java中将函数作为参数传递?

如何在Java中将函数作为参数传递给Callable

如何在Java中将函数作为参数传递以多次运行

如何在Java中将对象数组作为参数传递

如何在Java中将类型作为方法参数传递

如何在java方法中将数组作为参数传递?

如何在Java中将任何数组作为参数传递?

如何在Java中将函数作为参数传递

如何在 Java 中将类型作为参数传递?

如何在Java中将类对象作为变量传递

如何在模板类方法中将方法指针作为参数传递

如何在 selenium 中将输入参数作为测试类名传递?

是否可以在Java中将类名作为参数传递?

在 Java 中将特殊类型的类作为参数传递?

如何在Java中将新数组作为参数传递给方法?

如何在Java中将方法名称作为参数传递

如何在Java中将可执行块作为参数传递?

如何在Java程序中将double值作为命令行参数传递

如何在Java编辑器中将文本作为参数传递给我的netbeans模块?

如何在JSP的Java函数中将Struts2属性标记作为参数传递?

如何在Python中将方法作为参数传递

如何在Swift的方法中将字典作为参数传递?

如何在soap请求中将结构数组作为参数传递?