Với một số Java 8 phương pháp chức năng:Cách ngắn gọn để soạn tham chiếu phương thức Java?
class Foo { Bar getBar() {} }
class Bar { Baz getBaz() {} }
Một thành phần của hai accessors trông giống như:
Function<Foo, Bar> getBarFromFoo = Foo::getBar;
Function<Bar, Baz> getBazFromBar = Bar::getBaz;
Function<Foo, Baz> getBazFromFoo = getBarFromFoo.andThen(getBazFromBar);
Có cách nào ngắn gọn hơn? Điều này dường như hoạt động
((Function<Foo, Bar>) Foo::getBar).andThen(Bar::getBaz)
Nhưng nó khá xấu xí. Các parens bên ngoài có ý nghĩa cho các lý do ưu tiên, nhưng tại sao là diễn viên cần thiết?
(Foo::getBar::getBaz
sẽ được tốt đẹp, nhưng than ôi ...)
Tại sao không làm 'foo -> foo.getBar() :: getBaz' ? Có vẻ như bạn đang quá phức tạp. Có cái gì tôi đang mất tích? –
@VinceEmigh, ý bạn là 'foo -> foo.getBar(). GetBaz()'? nếu không, nó không có ý nghĩa – Andrew
@VinceEmigh, cách bạn đề xuất không đủ linh hoạt. Tốt hơn hết là chuẩn bị những người lập bản đồ đơn giản ('a-> b',' b-> c') soạn chúng bằng các phép toán đơn giản như '' Soạn'', 'vàT' khi chạy thay vì xây dựng tất cả các trường hợp có thể tại thời gian biên dịch. – Andrew