gpt4 book ai didi

java - 如何将类作为函数参数传递

转载 作者:行者123 更新时间:2023-12-01 17:41:09 24 4
gpt4 key购买 nike

我知道以前有人问过这个问题,但我不太明白/答案对我没有帮助,所以我希望在这个问题上得到一些帮助,因为我正在开始学习 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/

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