2013-04-24 20 views
0

我想改變ArrayList類的預定義方法。假設我們將任何元素添加到數組列表中。同時系統將打印「數值列入數組列表」。是否有可能對ArrayList類的add()進行更改。如何改變java類的predifine方法

回答

1
public class foo extends ArrayList<Object> { 
    @Override 
    public boolean add(Object e) { 
    // print your stuff here 
    return super.add(e); 
    } 
} 
0

您是否在問關於方法overriding

public class MyArrayLIst extends ArrayList<ClassObj>{ 

    @Override 
    public void add(ClassObj obj) { 
     //sysout 
     return super.add(obj); 

    } 


} 
0

使你自己重寫的add方法調用ArrayList的add方法並打印你想要的。必須通過繼承課程來完成。

2

在這種情況下,構圖通常優於繼承(請參閱http://en.wikipedia.org/wiki/Composition_over_inheritance)。例如,如果遵循擴展ArrayList類的方法,是否還希望在調用add(int index, E element)時調用邏輯。那麼addAll(Collection<? extends E> c)。如果在後續版本的Java中添加新的添加方法會怎樣?

相反,考慮實現自己的List。在內部,它會將操作委託給ArrayList,但您不得不考慮如何處理每種類型的添加。

+0

我同意。我會建議使用包裝設計模式。 – JRR 2013-04-24 05:34:29