CaseOutlineHeader
班级parameterTypes
是我想要改变的。 ResponseEntity<parameterTypes> returnValue = (ResponseEntity<parameterTypes>) result;
变量包含我想在ResponseEntity&lt;&gt;标记内传递的类的名称。如果我想传递不同的班级名称怎么办?我该怎么做才能灵活接受不同的班级名称?
如果我这样做:weather_dict
它会说错误parameterTypes无法解析为类型。
答案 0 :(得分:1)
问题是你的AOP方法需要将结果转换为某种东西才能获得记录所需的代码值。必须提前知道某些内容,因为您无法在注释中使用类型参数,因此无法将其传递给AOP方法。这意味着您在AOP中访问的所有方法都必须来自已知接口,如下所示:
public interface LogCodeProvider {
String getLogCode();
}
public class CaseOutlineHeader implements LogCodeProvider {
@Override
public String getLogCode() {
return "My Code";
}
}
然后在你的AOP方法中你可以这样做:
@SuppressWarnings("unchecked")
ResponseEntity<LogCodeProvider> returnValue = ResponseEntity<LogCodeProvider>) result;
result = etisLog.trasactionDetail().toString()+" "+returnValue.getBody().getLogCode();
在我的例子中,我实现了特殊的方法getLogCode(),它返回一个字符串,因此每个类都可以准确地决定输出什么。
然而,重用结果变量来存储从etisLog.trasactionDetail()
返回的值确实令人困惑。
答案 1 :(得分:0)
下面是示例代码,
ResponseEntity<?> anyRandomMethod(){
if(any condition){
return new ResponseEntity<Animal>(new Animal(), httpstatus.OK);
}else{
return new ResponseEntity<SpaceShip>(new SpaceShip(), httpstatus.OK);
}
}