我有一个非常简单的泛型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
对象的引用。在这种情况下,我的答案可能没有用。