Java 从表中获取对象

Java 从表中获取对象,java,Java,我写了这个函数。我试图在对象表中查找对象并返回字符串表 public Server(wine[] d) { this.d=d; } public String[] getData(String name) { String[] data = new String[2]; int i=0; while(i < d.length && s != d[i].id) i++; if (i < d.length)

我写了这个函数。我试图在对象表中查找对象并返回字符串表

public Server(wine[] d) {
   this.d=d;
}

public String[] getData(String name) {
   String[] data = new String[2];
   int i=0;         

   while(i < d.length && s != d[i].id)
      i++;

   if (i < d.length) {
      data[0] = d[i].name;
      data[1] = d[i].price;
      return data;
   } 
     else System.out.println(s + " Not Found ");

   data[0] = "error";
   data[1] = "error";
   return data;
 }
我认为问题在于这两方面:

data[0]= d[i].name;
data[1]= d[i].price;

如果我正确理解您的要求,那么您希望从葡萄酒对象数组中获取一种葡萄酒的名称和价格。试试这个

public String[] getData(String name)
{
    String[] data = new String[2];
    boolean wineFound = false;

    for (int i = 0; i < d.length; i++)
    {
        if( d[i].name.equals(name) )
        {
        data[0] = name;
        data[1] = d[i].price;
        wineFound = true;
        }
    }

    if (wineFound == true)
        return data;
    else
    {
    data[0] = "error";
    data[1] = "error";
    return data;
    }
}
public String[]getData(字符串名称)
{
字符串[]数据=新字符串[2];
布尔值=false;
对于(int i=0;i
看起来此错误来自于您未显示的完全不同的代码。请发布完整的堆栈跟踪。您如何调用
getData
?是不是
getData(null)
?另外,为什么
getData
使用未使用的
字符串名
?不知道哪行会抛出错误,我们无能为力。您可能将
null
字符串传递给
getData
。噢,
d[i]。name==name
将字符串与
=
进行比较
public String[] getData(String name)
{
    String[] data = new String[2];
    boolean wineFound = false;

    for (int i = 0; i < d.length; i++)
    {
        if( d[i].name.equals(name) )
        {
        data[0] = name;
        data[1] = d[i].price;
        wineFound = true;
        }
    }

    if (wineFound == true)
        return data;
    else
    {
    data[0] = "error";
    data[1] = "error";
    return data;
    }
}