在Spring MVC的AOP的項目,我有兩個接口和兩個類,超出了模型類,如下所示:如何修復收藏<type>進口問題在Eclipse
- ActivityDao(接口)
- ActivityDaoImpl(類)
- ActivityService(接口)
- ActivityServiceImpl(類)
- 活性(類)
模型類(n。 5):
package com.mycompany.myproject.model; //... imports @Entity public class Activity { @NotNull private long id; private String description; public Activity() { } //... getters and setters }
道接口(N 1):
package com.mycompany.myproject.dao; import com.mycompany.myproject.model.Activity; import java.util.Collection; public interface ActivityDao { public Collection<Activity> findAll(); public void delete(Activity activity); public void create(Activity activity); public Activity update(Activity activity); } }
DAO實現(N 2):
package com.mycompany.myproject.dao.impl; import com.mycompany.myproject.model.Activity; import com.mycompany.myproject.dao.ActivityDao; import java.util.Collection; // ... other imports @Repository public class ActivityDaoImpl implements ActivityDao { //... Spring autowiring, etc. public Collection<Activity> findAll(){ //... } // other methods implementation }
服務接口(n。 3):
package com.mycompany.myproject.service; import com.mycompany.myproject.model.Activity; import java.util.Collection; //... other imports public interface ActivityService { public Collection<Activity> getAllActivities(); // other method statements }
服務類(N 4):
package com.mycompany.myproject.service.impl; import com.mycompany.myproject.model.Activity; import com.mycompany.myproject.dao.ActivityDao; import java.util.Collection; import com.mycompany.myproject.service.ActivityService; // ... other imports @Service @Transactional(readOnly = true) public class ActivityServiceImpl implements ActivityService { @Autowired ActivityDao activityDao; public Collection<Activity> getAllActivities(){ //<=== ERROR! return activityDao.findAll(); } // other methods implementation }
的Eclipse爪哇語法checkingg被舒誤差的每個方法與集合中的服務返回類型類實現(n.4)警告返回類型與Dao的方法返回不兼容。
當接受來自快速修復對話框,Eclipse的改變服務的方法類型Collection<com.mycompany.myproject.service.Activity>
,而不是Collection<com.mycompany.myproject.model.Activity>
建議,這是模型類在正確的地方(甚至更好只是Collection<Activity>
,因爲這將是合理的)。
乍一看,Eclipse環境中的java語法調試器似乎對來自Dao類的接口和集合的Collection類型感到困惑,當它們不是它們的時候,將它們視爲不同的類型。
任何想法如何解決這個非常煩人的問題,或者我可能做錯了什麼?非常感謝!
您需要提供ActivityDaoImpl的代碼,以顯示構建Collection並返回它。另外你的ActivityDaoImpl在它前面有類而不是類,這會導致一些問題。 – Aeseir 2014-09-02 04:40:37
@艾西爾,感謝您的回覆。實際上「班級」是拼寫錯誤,在原始代碼中是「班級」。我已經解決了這個問題。顯然,Eclipse正在與構建路徑中的另一個項目的類混淆。強制它更新通過修復面板建議,然後再次寫入正確的導入語句似乎更新編譯器鏈接,現在錯誤不再顯示。再次感謝。 – Alex 2014-09-02 13:19:36