Why Functional Interfaces In Java