我知道以前有人问过这个问题,但我不太明白/答案对我没有帮助,所以我希望在这个问题上得到一些帮助,因为我正在开始学习 Java。
我想创建一个函数来计算类的实例并返回一个数字,例如我有:
Public class A{}
Public class A.a extends A{}
Public class A.b extends A{}
我有一个 A[] 数组,其中包含 A、A.a 和 A.b 的实例,并且我想计算该数组中 A、A.a 或 A.b 的实例,因此我创建了以下函数:
int countA.a(A[] array){
int counter = 0;
for(int i = 0; i < array.length; i++){
if(array[i] instanceof A.a){
counter++;
}
}
return counter;
}
int countA.b(A[] array){
int counter = 0;
for(int i = 0; i < array.length; i++){
if(array[i] instanceof A.b){
counter++;
}
}
return counter;
}
我的问题是,我该如何做这样的事情:
int countInstances(A[] array, class n){
int counter = 0;
for(int i = 0; i < array.length; i++){
if(array[i] instanceof n){
counter++;
}
}
return counter;
}
感谢您的耐心等待!
最佳答案
您可以使用Class
类:
int countInstances(A[] array, Class<? extends A> n){
您应该使用 isInstance
而不是 instanceof
Class
类中的方法。
if(n.isInstance(array[i])){
counter++;
}
用法:
int count = countInstances(someArray, SubclassOfA.class);
关于java - 如何将类作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61068518/