我创建了一个类,它将一个arraylist的3个值返回给主程序但是当我使用我的get()
方法时,编译器会抛出错误,找不到这个方法 - 符号。我尝试了同样的事情,不是一个arraylist但是有一个数组,它似乎工作。但我无法想象数组列表的方式。
//错误已开启"行动evt"在第二个代码标记上显示按钮。
错误消息是:"找不到符号方法getmarka()"。
我发布下面的代码也许你可以帮助我。
Class with get方法返回值:
public class Cars
{
private String modelo,marka;
private int kyvismos;
public Cars(String m,String ma,int k)
{
modelo=m;
marka=ma;
kyvismos=k;
}
public String getmodelo()
{
return modelo;
}
public String getmarka()
{
return marka;
}
public int getkyvismos()
{
return kyvismos;
}
public void setmodelo(String m)
{
modelo=m;
}
public void setmarka(String ma)
{
marka=ma;
}
public void setkyvismos(int k)
{
kyvismos=k;
}
public String toString()
{
return modelo+","+marka+","+kyvismos;
}
}
这是获得类别类的类。
public class MyFrame extends Frame
{
ArrayList<Cars> Cars = new ArrayList<>();
private Button add;
private Button show;
private Button quit;
public MyFrame(String title)
{
super(title);
resize(500,300);
setResizable(false);
setLayout(new GridLayout(3,1));
add=new Button("ADD");
show=new Button("SHOW");
quit=new Button("QUIT");
add (add);
add (show);
add (quit);
}
public boolean action(Event evt,Object arg)
{
if(evt.target.equals(add))
{
String value1= JOptionPane.showInputDialog("Enter Car Model ");
String value2= JOptionPane.showInputDialog("Enter Car Mark ");
int value3= Integer.parseInt(JOptionPane.showInputDialog("Enter Kyvismos "));
Integer I=new Integer(value3);
Cars.add(new Cars(value1,value2,value3));//or pinakas.add(value);
}
else
if(evt.target.equals(show))
{
String s="";
int i;
for(i=0;i<Cars.size();i++){
**//here is the error on Cars.getkyvismos() or getmarka() or getmodelo();**
//if(Cars.getkyvismos()>1900)
s=s+Cars.getmarka()+Cars.getmodelo()+"\n";
}
JOptionPane.showMessageDialog(null, "cars with kyvismo >1900 are \n " + s);
}
else
if(evt.target.equals(quit))
{
System.exit(0);
}
return true;
}
}
如果是新手问题,请提前致谢并抱歉!
答案 0 :(得分:3)
问题在于你有一个类Cars和ArrayList实例Cars,你会让他们感到困惑。
在您的示例的此块中,Cars
指的是列表,而不是单个车。
for(i=0;i<Cars.size();i++){
**//here is the error on Cars.getkyvismos() or getmarka() or getmodelo();**
//if(Cars.getkyvismos()>1900)
s=s+Cars.getmarka()+Cars.getmodelo()+"\n";
}
ArrayList Cars
没有方法getmarka()
。
你需要像
这样的东西for(i=0;i<Cars.size();i++){
**//here is the error on Cars.getkyvismos() or getmarka() or getmodelo();**
Cars car = Cars.get(i);
//if(car.getkyvismos()>1900)
s=s+car.getmarka()+car.getmodelo()+"\n";
}