Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Locale aparece como metódo depreciado.

Olá, como estão?

Então, ao escrever o código igual ao do professor, na versão do Java 19 o método Locale aparece como depreciado

  • aparece o método com um sublinhado bem em cima e aparece a mensagem de que o construtor Locate(String, String) está obsoleto desde a versão 19..
  • Como fazer para corrigir?
1 resposta
solução!

No Java 19, os construtores públicos da Localeclasse foram marcados como "obsoletos".

Em vez disso, devemos usar o novo método de fábrica estático Locale.of(). Isso garante que haja apenas uma instância por Locale configuração.

O exemplo a seguir mostra o uso do método fábrica comparado ao construtor:

Locale german1 = new Locale("de"); // deprecated Locale germany1 = new Locale("de", "DE"); // deprecated

Locale german2 = Locale.of("de"); Locale germany2 = Locale.of("de", "DE");

System.out.println("german1 == Locale.GERMAN = " + (german1 == Locale.GERMAN)); System.out.println("germany1 == Locale.GERMANY = " + (germany1 == Locale.GERMANY)); System.out.println("german2 == Locale.GERMAN = " + (german2 == Locale.GERMAN)); System.out.println("germany2 == Locale.GERMANY = " + (germany2 == Locale.GERMANY));

Ao executar este código, você verá que os objetos fornecidos por meio do método de fábrica são idênticos às Locale constantes – aqueles criados por meio de construções logicamente não são.

Podemos ver issue que gerou essa mudança no "Jira" do opensdk

https://bugs.openjdk.org/browse/JDK-8283478