【发布时间】:2021-07-13 04:19:30
【问题描述】:
我是 byte-buddy 的新手,我正在尝试使用它在我的项目中构建解决方案。对于特定场景,我不知道如何实施该解决方案。
我有 2 个接口(或父类的子类)的实现
基于一个条件,我想将 Class1 的所有方法调用委托给 Class2。
例子:
public class Class1 implements SampleInterface{
public Map<String,String> operation1(List<String> var){
}
public void operation2(List<String> var){}
public void operation3(){
System.out.println("Class1 : Operation 3");
}
}
public class Class2 implements SampleInterface{
public Map<String,String> operation1(List<String> var){
}
public void operation2(List<String> var){}
public void operation3(){
System.out.println("Class1 : Operation 3");
}
}
我想使用 byte-buddy 重新定义 Class1,如下所示。 我想将 Class2 的实例注入 Class1。 条件子句需要放在每个方法中。
有人可以帮忙解答吗?
public class Class1 implements SampleInterface{
Class2 proxyInstance;
public Map<String,String> operation1(List<String> var){
if(condition==true){
return proxyInstance.operation1(var);
}else{
//Class1 implementation
}
}
public void operation2(List<String> var){
if(condition==true){
return proxyInstance.operation2(var);
}else{
//Class1 implementation
}
}
public void operation3(){
if(condition==true){
proxyInstance.operation3();
}else{
System.out.println("Class1 : Operation 3");
}
}
}
【问题讨论】:
标签: byte-buddy