我有一个非常简单的泛型for循环,当我尝试使用gradle构建项目时会引起问题:

for(TaskAttribute taskAttribute:task.getAttributes())
{
...
}

Task.java
protected final Set<TaskAttribute> attributes = new HashSet<TaskAttribute>();

public Set<TaskAttribute> getAttributes(){return(attributes);}

我得到的错误是for循环正在获取Object,但需要TaskAttribute。我将sourceCompatibility设置为1.6。我还想念其他东西吗?

最佳答案

增强的for循环的基本设置是:

for(<Object_Type> <Object_Name> : <Collection_Name>)

我不确定task.getAttributes()返回什么或task是什么,但是如果您有一个称为attributes的Collection(一组),则应该将循环更改为:
for(TaskAttribute taskAttribute : attributes)
{
...
}

注意:由于这是private集合,因此您可能正在尝试从另一个类使用它,因此getAttributes()可能正在返回对Set对象的引用。在这种情况下,我的答案可能没有用。

10-04 14:07