【问题标题】:Java Incompatible Types Error ArraylistsJava 不兼容类型错误数组列表
【发布时间】:2013-04-19 02:36:48
【问题描述】:

我使用 BlueJ 作为 IDE,每当我尝试编译此 Java 代码时,它都会给我一个错误:incompatible types 高亮括号:

s.getCourtSportArrayList() 

为什么会这样?

public void showCourtBookings()
{
 for(Sport s : sportList)
 {
   for(Court c : s.getCourtSportArrayList() )
   {
     System.out.println("Court: " + c.getCourt);
     int i;
     i=1;
     for(Booking b : c.getBookings())
     {  
         System.out.println("Booking: " + i + "Start Time: " + b.getTimeStart() + "End Time :" + b.getEndTime());
         i = i + 1;
     }
   }
 }  
}

这是一个类Club,它包含两个ArrayList;

private ArrayList<Member> MemberList;
private ArrayList<Sport> sportList;

Sport 类具有以下 ArrayList:

private ArrayList<Court> CourtList = new ArrayList<Court>();

Court 类有这些 ArrayList:

private ArrayList<Booking> listBooking;

希望你能指出我正确的方向。谢谢!

编辑:这是代码,

public ArrayList getCourtSportArrayList()
{
  return CourtList;
}

【问题讨论】:

  • 不应该c.getCourtc.getCourt()
  • getCourtSportArrayList()的代码是什么?

标签: java bluej


【解决方案1】:

getCourtSportArrayList() 似乎是您的 Sport 类的一种方法。这个方法需要返回一个List&lt;Court&gt;,它现在显然没有。

结果该方法应如下所示:

public List<Court> getCourtSportArrayList()
{
   return CourtList;
}

附注:除非您使用 ArrayList 的特定实现细节,否则您应该指定通用类型 List&lt;Court&gt; 而不是 ArrayList&lt;Court&gt;

【讨论】:

  • 它确实......还是我写错了? public ArrayList getCourtSportArrayList() { return CourtList; }
  • Java 不会神奇地将 getter 和 setter 方法添加到您的私有成员对象,例如私有 ArrayList CourtList。您需要对此进行明确编码。
  • 需要指定类型! public List&lt;Court&gt; getCourtSportArrayList() { return CourtList; }
  • 我不得不找到使用 ArrayLists 的解决方法,因为我一直在方法签名中错误地声明它们。谢谢你:)
猜你喜欢
  • 2013-09-23
  • 1970-01-01
  • 2016-09-11
  • 2013-10-29
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 2014-03-29
相关资源
最近更新 更多