Одним из ограничений дженериков Java является то, что вы не можете иметь полиморфные данные внутри метода. Но есть обходной путь объявления статического класса внутри метода. Синтаксис записи Java позволяет вам делать это без создания нового объекта внутреннего класса. Надеемся, что ограничение внутреннего класса на классы, объявленные внутри метода, будет снято.
int myfunction(int x) { record Id() { static id(A input) { A value = input; return value; } } return Id.id(x); }
Это немного неудобно, но иногда полезно в сильно полиморфном коде.
Оригинал: “https://dev.to/mspondee/java-polymorphism-workaround-1nhc”