0
public Table findTable(Container container, String name) {
        Iterator<Table> tableFinder = container.getTables().iterator();

        while(tableFinder.hasNext()){
            if (tableFinder.equals(name)){
                return table;
            } else {
                return null;
            }
        }
    }

したがって、基本的にこのメソッドは、セットであるcontainerプロパティの 1 つをチェックすることによって、オブジェクト内のテーブルを検索することになっています。に属するtablesプロパティを通じてオブジェクトを見つけることになっています。通常は type のパラメータを挿入するだけで、その方が簡単に見つけることができますが、与えられたワイヤーフレームには、このようにする必要があると具体的に記載されています。nameTabletable

table のメソッドとして hashcode() と equals() があります。何らかの方法でそれらを使用する必要があることはわかっていますが、これを行う方法がよくわかりません。もう1つの問題は、テーブルを返す必要があることです.Tableのインスタンスなしでそれを行う方法がわからないので、テーブルを返すとエラーが発生することがわかっています. 基本的に、私が知る必要があるのは、検索name方法と、有効なリターンを得るためにテーブルをセットから取得する方法です。

4

3 に答える 3

0

現在、イテレータ オブジェクトと文字列の「名前」を毎回比較しています。あなたはこのようなことをしているはずです:

if (name.equals(tableFinder.next().getName())
于 2013-10-20T00:45:29.920 に答える
0

if (tableFinder.equals(name)){

あなたは iterator オブジェクトを呼び出しequalsていますが、これはあなたが本当に望んでいるものではありません。Table代わりに、イテレータが各ループで指し示しているものと比較したいと考えています。そのオブジェクトを取得するには、イテレータ オブジェクトでメソッドIterator#next()を呼び出す必要があります。

Table table = tableFinder.next();
if (table.equals(name)){ // assuming that your equals implementation 
                         // compares with the property name of table
于 2013-10-20T00:51:44.920 に答える