java匿名類使用

經典使用:本例經常用
匿名內部類使用:等於傳入一個函數指針,執行一個callback.將子函數中的result,傳回給class的成員變量
    

 private List<ConfigData> setConfigValues(...) { 
        handler.apply(new SetAttrAssistant() {//傳入匿名對象
            //類成員函數
            public boolean setConfigData(Collection<ConfigData> items) {
            //匿名類,使用外部類的成員變量configDataList保存數據,而items正是子函數計算的result
                configDataList.addAll(items);
            }
        });    
    }
    
    public void apply(SetAttrAssistant assistant) {
        if (assistant != null) {
            List<ConfigData> tupleOfData = Lists.newArrayList();
            for (Map.Entry<String, String> config : profile.entrySet()) {
                ConfigData data = convertConfigData(config.getKey(), config.getValue());
                tupleOfData.add(data);
            }
            assistant.setConfigData(tupleOfData);//執行匿名對象的setConfigData函數。
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章