gpt4 book ai didi

java - 将类作为参数传递给java中的方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:43:06 24 4
gpt4 key购买 nike

我正在编写一个方法,我想将一个类传递给一个方法,其中部分代码包括检查对象是否属于某种类型。这就是我想要的(但显然行不通):

private static class MyClass1 { /***/ }
private static class MyClass2 { /***/ }

private void someFunc() {
/* some code */
methodName(MyClass1);
methodName(MyClass2);
}


private void methodName(Class myClass) {
Object obj;
/* Complicated code to find obj in datastructure */
if (obj instanceof myClass) {
/* Do stuff */
}
}

关于如何做到这一点有什么提示吗?谢谢!

最佳答案

Class 有一个 isInstance()方法和 isAssignableFrom()检查这样的东西的方法。最接近您要查找的内容是:

if (myClass.isInstance(obj)) {

更新:根据您的评论,您想将一个类的名称传递给一个方法并检查是否可以将某些内容分配给该类。这样做的唯一方法是将类名作为字符串传递,然后加载该类并使用上述方法之一。例如(省略异常处理):

private void methodName(String className) {
Class myClass = Class.forName(className);
    Object obj;
    /* Complicated code to find obj in datastructure */
    if (myClass.isInstance(obj)) {
        /* Do stuff */
    }
}

关于java - 将类作为参数传递给java中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14846853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com