【问题标题】:Incompatible types when adding to ArrayList添加到 ArrayList 时的类型不兼容
【发布时间】:2013-11-25 15:02:32
【问题描述】:

尝试将某些内容添加到我的数组列表时,我遇到了不兼容的类型错误。好像不知道怎么解决,所以想请教各位大神。这是出错的代码,希望有人能回答我!我知道这里的缩进不正确,但这是我第一次在这里发帖以容忍我!

import java.util.ArrayList;
public class Dienblad {
    private ArrayList<Artikel> artikelen;
    private double artikelprijs;
    private double totaalprijs;
    private int artikelaantal;
    /**
     * Constructor
    */
    public Dienblad() {
        artikelen = new ArrayList<Artikel>();
        int artikelaantal = getAantalArtikelen();
        double totaalprijs = 0;
    }
    /**
    * Methode om artikel aan dienblad toe te voegen
    ** @param artikel
    */
    public void voegToe(Artikel artikel , double artikelPrijs) {
        artikelen.add(artikel);
        totaalprijs = totaalprijs + artikelPrijs;
    }
}

【问题讨论】:

  • 好像没问题,你能发布你的错误吗?
  • 准确完整的错误信息是什么?它指的是哪一行?
  • 代码中的一个错误是您在构造函数中为新的局部变量赋值。这不会解决您描述的问题,但它会在将来帮助您。将int artikelaantal = getAantalArtikelen(); 更改为artikelaantal = getAantalArtikelen();double totaalprijs = 0; 更改为totaalprijs = 0;
  • 当我用 BlueJ 创建一个对象时,一切都很好。当我调用方法 voegToe 并尝试添加一个 artikel 时,问题就出现了。它只说错误:无法比较的类型。终端没有向我显示任何其他内容。我按照您所说的更改了变量,但这并不能解决问题。

标签: java arraylist incompatibletypeerror


【解决方案1】:

代码似乎没问题。 您是否有机会在不同的包中定义了两个 Artikel 实例(错误地)?

【讨论】:

  • 嗯,我确实有一个名为 Artikel 的不同班级,但我不知道这是否是问题所在。
  • 我认为这可能是您的问题。如果您有两个不同的类,例如:com.xyz.Artikel 和 com.abc.Artikel,java 会将它们视为不同的类。确保您在代码的两个位置都导入了相同的包。或者写整个路径 private ArrayList artikelen;并确保它与您尝试放入数组列表中的类对象相同
猜你喜欢
  • 1970-01-01
  • 2014-09-07
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 2013-10-29
  • 2018-03-11
  • 1970-01-01
相关资源
最近更新 更多