Мне нужно работать с массивом Objects, который имеет следующее значение:
objectsArray = {Object[3]@10910}
{Class@10294} "class com.ApplicationConfiguration" -> {ApplicationConfiguration@10958}
key = {Class@10294} "class com.ApplicationConfiguration"
value = {ApplicationConfiguration@10958}
{Class@10837} "class com.JoongaContextData" -> {JoongaContextData@10960}
key = {Class@10837} "class com.JoongaContextData"
value = {JoongaContextData@10960}
{Class@10835} "class com.SecurityContext" -> {SecurityContext@10961}
key = {Class@10835} "class com.SecurityContext"
value = {SecurityContext@10961}
Код, который создает массив объектов:
public class ProcessDetails {
private UUID myId;
private Date startTime;
private ResultDetails resultDetails;
private long timeout;
.
.
.
}
public interface ProcessStore extends Map<Class, Object> {
<T> T unmarshalling(Class<T> var1);
<T> void marshalling(T var1);
ProcessDetails getProcessDetails();
}
Object[] objectsArray = processStore.entrySet().toArray();
Мне нужно извлечь значениеиз элемента типа ApplicationConfiguration .
Обратите внимание, что это не всегда первый элемент массива!
Для начала я попытался сделать следующее:
List<ApplicationConfiguration> ApplicationConfigurations = Arrays.stream(objectsArray)
.filter(item -> item instanceof ApplicationConfiguration)
.map(item -> (ApplicationConfiguration)item)
.collect(Collectors.toList());
, чтобы получить список с конкретным предметом.По какой-то причине у меня есть пустой список.
Может кто-нибудь сказать, пожалуйста, почему?
Спасибо!