經典使用:本例經常用
匿名內部類使用:等於傳入一個函數指針,執行一個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函數。
}
}