gpt4 book ai didi

java - 单一接口(interface)下不可更改的类

转载 作者:行者123 更新时间:2023-11-29 08:26:51 24 4
gpt4 key购买 nike

生成的类( stub )如下:

class A {
int getA() {...}
int getB() {...}
int getC() {...}
}

class B {
int getA() {...}
int getB() {...}
int getD() {...}
}

这里不可能改变这个类。我想获得这样的可能性,例如使用通用方法实现单个接口(interface)的类:

interface SimpleAB {
int getA();
int getB();
}

不想使用反射 API。有人有想法以优雅的方式做到这一点吗?

最佳答案

您可以为每个类创建一个包装器。如果 Escape Analysis 启动,它甚至可能不会创建新对象。

interface SimpleAB {
int getA();
int getB();

static SimpleAB wrap(A a) { return new SimpleAB() { /* delegate */ }; }
static SimpleAB wrap(B b) { return new SimpleAB() { /* delegate */ }; }
}

这样你就可以包装一个 AB 然后将它们视为相同。

关于java - 单一接口(interface)下不可更改的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52060253/

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