Java seria aprimorado com a capacidade de importar de forma sucinta todos os pacotes exportados por um módulo, sob uma proposta flutuante na comunidade Java. O plano simplificaria o uso de bibliotecas modulares em Java.
O recurso de linguagem de visualização para Java SE (Standard Edition), chamado Module Import Statements, foi arquivado como uma JDK Enhancement Proposal (JEP) na comunidade OpenJDK.
Os objetivos do plano incluem simplificar a reutilização de bibliotecas modulares, permitindo que módulos inteiros sejam importados de uma só vez, evitando o ruído de múltiplas declarações de importação de tipo sob demanda ao usar diversas partes da API exportadas por um módulo e permitindo que iniciantes usar mais facilmente bibliotecas de terceiros e classes Java fundamentais sem precisar saber onde elas estão localizadas em uma hierarquia de pacotes, afirma a proposta.
Não é objetivo exigir que os desenvolvedores que usam o recurso de importação de módulo modularizem seu próprio código. O recurso não exige que o código de importação esteja em um módulo.
O que motiva a proposta é o desejo de reduzir drasticamente o número de declarações de importação que os programadores Java precisam escrever. Embora classes e interfaces no pacote java.lang, como Object
, String
e Comparable
são importados automaticamente pelo compilador Java sob demanda, outras classes e interfaces essenciais, como List
, Map
, Stream
e Path
, não são. Como resultado, os desenvolvedores devem escrever inúmeras declarações de importação no início de cada arquivo fonte.
A capacidade de importar no nível de módulos seria especialmente útil quando as APIs de um módulo têm um relacionamento próximo com as APIs de outro módulo. A importação automática sob demanda de dependências transitivas seria uma conveniência adicional durante a prototipagem e exploração, diz a proposta.
Criada em agosto de 2023 e atualizada em 18 de abril, a proposta ainda não visa a capacidade para uma versão específica do Java. A primeira possibilidade seria o JDK 23, previsto para setembro.