Tôi đã xác định phương thức tĩnh assertThat
để mở rộng AssertJ. Phương pháp này chấp nhận một biểu thức lambda loại:Gọi phương thức mơ hồ với Lambda trong Java
@FunctionalInterface
public interface Action {
void execute() throws Exception;
}
Chữ ký trông như thế này:
public static ExceptionAssert assertThat(Action action)
Tôi muốn sử dụng phương pháp này với một khẩu tĩnh. Nhưng nó là mơ hồ. Trình biên dịch không biết liệu assertThat(Iterable) hay phương pháp của tôi nên được sử dụng. Tôi không hiểu phương thức void
có thể xung đột với phương thức trả về số Iterator<T>
.
Bất kỳ ý tưởng nào về cách giải quyết xung đột này (không viết tên lớp trước assertThat
)?
Nó thực sự là vấn đề mà mã ném một ngoại lệ. – deamon