引用一个匿名对象

我有一个接口IDataViewProvider,它由JSONViewProviderErrorLogViewProvider实现。 我创建了一个List<IDataViewProvider>,并有一个JSONViewProvider的匿名对象。

下面是代码:

 area1 = new DUISectionDetails(
            "Area1",new IDataViewProvider[]{new JSONDataViewProvider()},new DUISectionDetails[]{
                new DUISectionDetails("DUI_TelemetryHeader_s",null),new DUISectionDetails("DUI_Section_Log_Header_s",new DUISectionDetails("DUI_Section_StaticUnitInfo_s",}            
        );

DUISectionDetails的结构:

public class DUISectionDetails{
    public String key;
    public List<IDataViewProvider> dataViewProviders;    
    public DUISectionDetails[] subSections;
}

我想遍历dataViewProviders的列表和每个视图的调用函数

for(IDataViewProvider view : area1.dataViewProviders)
{
       pane = (AnchorPane) view.getDataView(area1_node);

}

这样的事情。

a617027242 回答:引用一个匿名对象

在上面的代码中,DUISectionDetails类的dataViewProviders属性为List数据类型,但您要使用数组数据类型对其进行初始化,它将首先编译。

但是,假设您以以下方式初始化DUISectionDetails:

area1 = new DUISectionDetails(
            "Area1",Arrays.asList(new JSONDataViewProvider()),new DUISectionDetails[]{
                new DUISectionDetails("DUI_TelemetryHeader_s",new ArrayList<>(){{add(new JSONDataViewProvider());}},null),new DUISectionDetails("DUI_Section_Log_Header_s",new DUISectionDetails("DUI_Section_StaticUnitInfo_s",}            
        );

现在要解决遍历dataViewProviders列表的实际问题:

for(IDataViewProvider view : area1.dataViewProviders)
{
       pane = (AnchorPane) view.getDataView(area1_node);

}

DUISectionDetails[] dUISectionDetailsArray = area1.subSections;

for(DUISectionDetails obj : dUISectionDetailsArray) {

    for(IDataViewProvider view : obj.dataViewProviders) {
       pane = (AnchorPane) view.getDataView(area1_node);
    }
}
本文链接:https://www.f2er.com/2858218.html

大家都在问