0

私はオブジェクトを返す方法を見つけるのに苦労してきました。

次のオブジェクトの配列があります。

ArrayList<Object> favourites;

「description」プロパティに基づいて配列内のオブジェクトを検索したいと思います。

public Item finditem(String description) {

for (Object x : favourites) {
   if(description.equals(x.getDescription())) {
      return Object x;
   else {
      return null;

誰かが私がこのコードを書く方法を教えてもらえますか?ありがとう。

4

3 に答える 3

3

ジェネリックを使用する:

ArrayList<Item> favourites;

public Item finditem(String description) {

  for (Item x : favourites)
    if(description.equals(x.getDescription()))
      return x;

  return null;
}

または、本当にオブジェクトの配列が必要な場合は、メソッドの戻り型はObjectである必要があります。

public Object findItem(String description)

しかし、お気に入りをアイテムの配列リストにしたいようです。

于 2012-04-11T11:26:24.007 に答える
0

汎用オブジェクトで getDescription を呼び出すことはできません。

ArrayList を、プロパティの説明を持つ特定のタイプのオブジェクトで構成する必要があります。

クラスアイテムがあるので:

public class Item {
    private String description;

    public String getDescription(){
        return description;
    }

   ... other methods here
}

これで、次のようなこのタイプの ArrayList を作成できます。

List<Item> myList = new ArrayList<Item>();

そして、あなたがやっているのと同じ方法でそれを繰り返します...ほとんど。

常に最初の要素をチェックし、探しているものではない場合は null を返すため、反復コードは壊れています。必要なものは次のようなものです。

for (Item x : favourites) {
  if(description.equals(x.getDescription())) {
    return x;

return null;

この方法では、リスト全体を反復処理し、サイクルの最後に到達した場合にのみ null を返すことに注意してください。

于 2012-04-11T11:30:15.827 に答える
0

ArrayList<Item>または戻り値の型を に変更しObjectます。

于 2012-04-11T11:30:32.980 に答える