|
|
1
7
如果您需要兼容的只是接口,那么就没问题了。 dynamic proxy classes 它基本上是如何在Java中运行时实现接口的。 如果您需要与类具有类似的运行时兼容性,我建议您查看cglib或javaassist开放源码库。 |
|
|
2
10
您不能使用委托类,即包装“class c”实例并实现“interface i”的新类吗?
然后,如果需要调用一个函数,该函数通常采用类型的参数
|
|
|
3
3
如果你能
当然,在构建期间也可以这样做。这样做可能更容易(因为您不需要访问类加载器)。 |
|
|
4
2
一点也不。如果可以进行此转换,则可以编译试图对此对象调用“added methods”之一的代码,该代码在运行时将失败,因为该方法在C中不存在。 我认为您正在想象,强制转换将检测到C中“缺少”的方法,并将它们自动委托给D。我怀疑这是可行的,尽管我不能说出语言设计的含义。 在我看来,解决你的问题的办法是:
定义类D,扩展C并实现I
|
|
|
5
1
我相信你想要的是可能的
|
|
|
6
0
我认为你不能这么做,因为Java是严格类型化的。我相信它可以用Ruby和Python这样的语言来实现,使用mixin。 对于Java来说,它无疑是适配器设计模式的一种很好的用法(它早就被提出为“包装器”对象)。 |