tor*_*tor 10 java instanceof argument-passing
我正在编写一个方法,我想将一个类传递给一个方法,其中一部分代码包括检查对象是否属于某种类型.这就是我想要的(但显然不起作用):
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 */
}
}
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何提示?谢谢!
Rya*_*art 20
Class有一个isInstance()方法和一个isAssignableFrom()方法来检查这样的东西.最接近您要找的是:
if (myClass.isInstance(obj)) {
Run Code Online (Sandbox Code Playgroud)
更新:从您的注释中,您希望将类的名称传递给方法,并检查是否可以将某些内容分配给该类.唯一的方法是将类名作为String传递,然后加载该类并使用上述方法之一.例如(省略异常处理):
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 */
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32088 次 |
| 最近记录: |