java - 从 Arraylist 上的类获取方法

标签 java arraylist

我创建了一个类,它将 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/

相关文章:

java - 在扩展类上添加 'throws' ?

Java向嵌套数组添加数据

java - 如何根据值按升序排列数组列表

java - 将对象传递给 fragment Activity 并从 fragment 写入对象的正确方法

java - 就内存使用而言,IntBuffer 与数组相比如何?

java - 将 spring 添加到 servlet 只是为了验证

java - 使用gson在json中剪切太长的字符串

java - 在数组中使用 boolean 值的 If 语句

java - 访问List<List<List<List<Object>>>> titles = new ArrayList<List<List<Object>>>>();

java - 为什么我的 ArrayList 创建一个对象的两个副本?