有没有办法动态创建另一个扩展的匿名实例? 会是这样的,我认为这会很棒。
File myFile = new File("notes.txt");
new FileWrapper extends myFile(){ //instance!!!
@Override public boolean equals(File in){ return false;}
};
这就像复制对象实例并在特定方法中重写逻辑一样 如果不是最好的方法来实现它?
注意:我知道如果myFile是一个类名而不是实例,那么该示例是有效的,但是我应该做一些事情来保存实例变量和内部信息。
答案 0 :(得分:1)
不,Java中没有这样的功能。您将不得不依赖代理对象来转发对原始实例的调用,除了它想要“覆盖”的调用。
请注意,如果您希望代理对象具有与原始对象相同的类型,则需要使用接口,因为如果代理对象会扩展原始类型,您最终会得到两个实例(如果它是执行工作的包装对象,则不需要这样做。)
进一步阅读:
(是的,如果有很多委托方法,我同意它会变得一团糟......)