Создание Fest ComponentFinder не бросает, если не совпадает на вызов Find ()JAVA

Программисты JAVA общаются здесь
Anonymous
Создание Fest ComponentFinder не бросает, если не совпадает на вызов Find ()

Сообщение Anonymous »

Как я могу сделать ComponentFinder не бросить, если совпадение не найдено (

Код: Выделить всё

finder.find()
)? Я хочу, чтобы это, помимо прочего, возвращал необязательный s, если запрашивается один компонент, но ни один не найден. Я мог бы сделать Delegate ComponentFinder invoke findall () , а затем вернуть необязательный первого элемента или необязательный. EMPTY () , если коллекция пуста. Тем не менее, это сделает метод менее эффективным, поскольку делегат будет пройти всю иерархию компонентов, даже если желательно только одно совпадение. < /P>
catch ing componentlookupexception s чувствует себя неправильно (как и любая try/catch с участием Runtimeexception s)
java 8.
import org.fest.swing.core.BasicComponentFinder;
import org.fest.swing.core.ComponentFinder;
import org.fest.swing.core.GenericTypeMatcher;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import javax.swing.JLabel;
import javax.swing.JPanel;

import static org.junit.jupiter.api.Assertions.assertNull;

public class ComponentFinderTest {

ComponentFinder finder;

@BeforeEach
void setUp() {
finder = BasicComponentFinder.finderWithCurrentAwtHierarchy();
}

@Test
public void testFind() throws Exception {
JPanel panel = new JPanel();
// throws org.fest.swing.exception.ComponentLookupException
JLabel label = finder.find(panel, new GenericTypeMatcher(JLabel.class, false) {
@Override
protected boolean isMatching(JLabel component) {
return true;
}
});
assertNull(label);
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... -find-call

Вернуться в «JAVA»