我创建了一个类,它将 arraylist 的 3 个值返回到主程序,但是当我使用 get()
方法时,编译器会抛出错误,提示我找不到此方法 - 符号。我尝试用数组而不是数组列表来做同样的事情,它似乎有效。但我无法想象数组列表会是什么样子。
//代码第二个标记上的“action evt”显示按钮出现错误。
错误消息是:“找不到符号方法 getmarka()”。
我发布了下面的代码也许你可以帮助我。
具有返回值的 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;
}
}
提前致谢,如果这是一个新手问题,抱歉!
最佳答案
问题在于你有一个类 Cars 和 ArrayList 实例 Cars,而你混淆了它们。
在示例的此 block 中,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";
}
关于java - 从 Arraylist 上的类获取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35233448/