Java方法可以根据条件返回值吗?
2022-09-03 03:26:22
我有一个接口和类来实现这一点。ICoreClient
AClient
BClient
ICoreClient
向用户公开。
我需要在接口中添加一个新方法。因此,它需要在两个客户端中实现。我不能使这种方法通用,因为它具有完全不同的签名但功能相似。ICoreClient
我有 2 个接口和xx
yy
ClientA
实现和实现xx
ClientB
yy
因此,我决定添加一个新的,它将为我提供客户端的实例或取决于客户端。testMethod
ICoreClient
xx
yy
我想根据条件从单个方法返回这些接口的实例。
在客户端 A 中
:
public xx testMethod(){
return instanceof xx;
}
在客户端 B 中
:
public yy testMethod(){
return instanceof yy;
}
我应该在ICoreClient
界面中写些什么?
public zz testMethod()
我尝试将一个虚拟接口(充当通用超类型)放在两者中,并且正在实现这一点。但仍然无法在各自的客户端中公开方法,因为最终它在 中进行了类型转换。zz
xx
yy
xx
yy
zz
对于这种情况,是否有任何已知的方法?
编辑:如果我做返回类型,这些接口的方法不会公开。虽然,对象包含 或 的实例,Object
xx
yy
用户仍然需要将其转换为(或者用户如何知道?)以使用界面中的方法。我想暴露的方法,而不必强制转换为或...xx
yy
ClientX
ClientA
ClientB