gpt4 book ai didi

java - 如何调用作为参数传递的类的方法

转载 作者:行者123 更新时间:2023-12-01 17:11:15 25 4
gpt4 key购买 nike

我试图将子类作为参数传递,然后创建它的实例,但在实例化转换类(不兼容类型)的行上收到错误消息。如果我尝试使用 transClass trans = new transClass() 进行实例化,它会提示 transClass 未知。这是我正在使用的代码。

abstract class Transformation {
abstract public Object transform(Object obj);
}
class MyTransformation extends Transformation {
public Object transform(Object obj){
// do stuff to obj
return obj;
}
}

class AnotherClass {
public doSomething(Object obj, Class<Transformation> transClass){
// do more stuff to obj
Transformation trans = new transClass(); // fails with "Incompatible Types", referring to 'Transformation' and 'transClass'
// transClass trans = new transClass(); // alternate attempt, also fails with "Unknown Type" on 'transClass'
return trans.transform(obj);
}
}

最佳答案

您应该使用Class#newInstance :

public <T extends Transformation> Object doSomething(Object obj, Class<T> transClass)
throws Exception {
// do more stuff to obj
Transformation trans = transClass.newInstance();
return trans.transform(obj);
}

关于java - 如何调用作为参数传递的类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23704675/

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