Есть ли более элегантный способ сделать это с помощью потоков, в java 8? Можете ли вы дать мне несколько советов о том, какие части документации я должен смотреть? Я думал, что можно было бы сделать это без создания сначала пустого featureList
, но я не могу заставить его работать.
Здесь есть два уровня возможностей, общие c доступные функции на всех устройствах и функциях, которые специально включены на этом устройстве, поскольку, даже если они доступны, их можно отключить для определенных c устройств, если мы того пожелаем.
public List<DeviceFeature> getAllEnabledFeatures(DeviceID deviceId){
List<String> featureNames = getAllEnabledDeviceFeatures(deviceId);
List<DeviceFeature> featureList = new ArrayList<>();
featureNames.forEach(featureName -> {
DeviceFeature feature = getDeviceFeatureEnabledForDevice(featureName, deviceId);
if(feature != null) featureList.add(feature);
});
return featureList;
}