アウタークラスからメソッドを呼び出すプライベートクラス
-
04-10-2019 - |
質問
わかりました、だから私は「高度なデータ構造」のクラスを持っています(この場合はちょっとツリー)ので、私はその中にプライベートクラスとしてイテレーターを暗示しました。したがって、イテレーターは、最後に再審査された要素を削除するために削除関数を実装する必要があります。
今、私のADTはすでに削除関数を暗示しています。この場合、イテレーターの別の削除関数を暗示することによって利益を得ることはほとんどありません(何も考えていません)。
では、ADTから削除を呼び出すにはどうすればよいですか
私のstrutureのスケッチ:
public class ADT {
...
private class ADT_Iterator impliments java.util.Itorator{
...
public void remove(){
//where I want to call the ADT's remove function from
}
...
public void remove( Object paramFoo )
{
...
}
...
}
したがって、remove(fooinstance)を呼び出すだけで動作しません(それは?)、this.remove(fooinstance)は同じです。
私は何と呼びますか? (そして、ADTの削除関数の名前はオプションではありません。なぜなら、AD Tは、私が変更するために自由にメモしているインターセカスに会わなければならないからです)
私は彼らの両方をremovehelper functonと呼ぶことができます、私は推測します...
解決
ADT.this.remove(object)
(ただし、remogn(オブジェクト)を呼び出すだけで、この場合は機能します。なぜなら、Iteratorのremove()メソッドとは異なる署名があるためです。)
他のヒント
内側クラスが「添付」される外側クラスの参照を取得するには、クラス名を使用します。
private class ADT_Iterator impliments java.util.Itorator{
...
public void remove(){
ADT.this.remove(obj)
}
所属していません StackOverflow