小智..
5
为自己定义功能接口非常容易。在我目前正在从事的项目中,我发现有几次通过将方法作为参数传递使我能够保持代码的美观和DRY。这是我定义的一些功能接口:
@FunctionalInterface
public interface CheckedVoidFunction {
void apply() throws Exception;
}
@FunctionalInterface
public interface VoidFunction {
void apply();
}
@FunctionalInterface
public interface SetCategoryMethod {
void accept(ObservableList list, Document document, String pattern);
}
这是一种接受此类参数的方法:
private void loadAnnotations(String annotationType, VoidFunction afterLoadFunction, List documentPaths) {
在这里,我用不同的方法作为参数来调用这些方法:
loadAnnotations(DocumentReader.REDACTION_ANNOTATION_TYPE, this::afterLoadRedactions, documentPaths);
loadAnnotations(DocumentReader.HIGHLIGHT_ANNOTATION_TYPE, this::afterLoadHighlights, documentPaths);
也许有更好的方法可以做到这一点,但我想我会分享对我有用的东西。
版权声明:本文为weixin_42518090原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。