Desvendando o método main do Java
Fala galera blz 😀
Hoje vamos falar sobre um método que sempre usamos e é praticamente o primeiro método que executamos quando estamos aprendendo a linguagem Java. Sim, estou falando do método main, aquele onde executamos o famoso “Hello World” – “Olá Mundo” quando entramos nesse mundo da programação.
Porque falar sobre ele? Porque eu me “toquei” que nunca tinha visto artigo sobre o main e achei isso meio triste rsrsrsr.
Ele tem alguns pontos interessantes e curiosos você sabia?
O método main é o ponto de entrada de qualquer programa Java e desde a primeira versão, ele tinha a seguinte assinatura:
public static void main(String[] args) {}
Mas, você sabia que temos outras formas de usar o método main?
A partir do Java 8, podemos usar a interface funcional Consumer
para nos dar mais “poder” com o método:
public static void main(String[] args, Consumer<String[]> consumer) {}
Com essa alteração, podemos criar um Consumer
que processe um ou mais argumentos passados para o programa.
Suponha que você tem um programa Java que faz alguma manipulação qualquer em um array de strings. Então você deseja permitir que o usuário forneça o array de entrada a partir da linha de comando. Você pode usar o Consumer<String[]>
para aceitar esse array de entrada, como mostrado no exemplo abaixo:
public class MeuPrograma {
public static void main(String[] args, Consumer<String[]> consumer) {
// Chama a função fornecida pelo usuário com o array de argumentos da linha de comando
consumer.accept(args);
// Faz alguma manipulação no array de entrada
}
}
Em seguida, o usuário pode fornecer uma função para manipular o array de entrada, como mostrado abaixo:
public class Teste {
public static void main(String[] args) {
MeuPrograma.main(args, (input) -> {
// Imprime o array de entrada (input)
System.out.println("Array de entrada: " + Arrays.toString(input));
});
}
}
O método main
do programa MeuPrograma
é chamado a partir do método main
do programa Teste
, e é passado um lambda como o segundo parâmetro.
//lambda que imprime o array
(input) -> {
// Imprime o array de entrada (input)
System.out.println("Array de entrada: " + Arrays.toString(input));
}
O lambda simplesmente imprime o array de entrada fornecido pelo usuário. Quando o método MeuPrograma.main
é chamado, ele chama a função fornecida pelo usuário com o array de argumentos da linha de comando e, em seguida, faz alguma manipulação no array de entrada.
/> java Teste argumento1 argumento2
Array de entrada: [argumento1, argumento2]
Bacana né? Sabia dessa?
A título de curiosidade, podemos também a partir do Java 9, “omitir” o método main em determinadas situações, se o programa não tiver uma carga de inicialização específica . Nesse caso, podemos usar a opção -m
do comando java para especificar o módulo que deve ser executado.
É necessário para isso, que o programa seja organizado em um módulo e que esse módulo especifique a classe que deve ser executada, por meio de um arquivo de configuração module-info.java
, dessa forma o metodo main será inferido a partir do arquivo module-info.java.
Essa abordagem pode ser útil em projetos grandes que utilizam módulos para organizar o código e reduzir as dependências entre as classes. Com essa opção, podemos especificar qual classe deve ser executada de forma mais clara e legível.
Porém, não quero entrar nesse ponto, pois quero mostrar a mudança na assinatura do método, então voltemos ao main 😀
Olha o tanto de coisa que envolve um simples método main, não é ?
//primeira variante, versão tradicional e mais usada
public static void main(String[] args) {}
//segunda variante, a partir do Java 8
public static void main(String[] args, Consumer<String[]> consumer) {}
E ai gostou de saber mais sobre o método main? Sabia dessas variantes? Já usou alguma?
Eu particularmente uso o que normalmente a IDE me entrega/gera, então estou na primeira opção rsrsr,. Enfim, independente do qual você utiliza e a forma que utiliza, o importante é entender o que está fazendo.
Até a próxima 😉
nifedipine 10mg generic buy allegra online order allegra 120mg pill
buy nifedipine generic nifedipine pills purchase fexofenadine generic
Embrace the perks of on-line gambling and make the most of your time at the
casino.
My homepag webpage
Gamingg advocates have extended viewed Residence
Speaker Dade Phelan ass the state leader most amenable to expanding gambling.
My blog post: 카지노
Bocor88 Login
With its purple and gold color scheme, Super Slots is an eye-catching on the net casino and slts
website.
Feel free to visit my web blog – 카지노사이트
order adalat 10mg pill fexofenadine 180mg cheap order allegra sale
nifedipine sale buy generic nifedipine allegra 180mg over the counter
Can I show my graceful appreciation and speak out on really good stuff and if you want to really findout?
Let me tell you a brief about how to become a millionaire I am always
here for yall you know that right?
Hi there I am so delighted I found your web site, I really found you by error, while I was researching on Bing for something else,
Regardless I am here now and would just like to say thank you for a remarkable post and a all
round enjoyable blog (I also love the theme/design), I don’t have time to go through it all at the
minute but I have book-marked it and also added in your RSS feeds, so
when I have time I will be back to read a lot more, Please do keep up the superb
jo.
kampus canggih
order dapoxetine 60mg generic orlistat 60mg usa buy xenical pills
amlodipine sale order omeprazole 20mg pills cheap omeprazole 10mg
cheap norvasc 5mg cheap amlodipine 5mg order prilosec 10mg pill
buy amlodipine without prescription omeprazole 10mg usa prilosec 10mg without prescription
brand dapoxetine 90mg xenical 60mg brand buy orlistat pill
order priligy 30mg generic buy generic cytotec for sale buy xenical 60mg online
So desperate to have you fill me up http://prephe.ro/Phqn
buy dapoxetine generic xenical canada xenical online buy
priligy 90mg ca order cytotec 200mcg generic order xenical without prescription
diltiazem buy online zovirax cheap buy generic allopurinol
order metoprolol 100mg without prescription order atenolol 100mg pill order medrol online cheap
cheap metoprolol medrol medicine buy methylprednisolone
lopressor 50mg without prescription metoprolol 50mg ca buy oral medrol
order lopressor 100mg generic order metoprolol 100mg online cheap methylprednisolone cost
The author’s site is a treasure trove of helpful tips and insights. Whether you’re looking for inspiration or practical advice, you’ll find everything you need right here. Ukraine Begins Counteroffensive
buy generic diltiazem 180mg allopurinol without prescription order zyloprim 100mg generic
Compre su licencia de conducir en línea. ofrecemos durabilidad, calidad de impresión excepcional y una impresión general de calidad y autenticidad. Analice una variedad de funciones, como códigos de barras, bandas magnéticas, chips inteligentes y superposiciones holográficas. También incluyen laminados holográficos que añaden autenticidad a las tarjetas.
comprar licencia de conducir
nd buy real ID online? Your search has made you land on the right page. We are one of the top registered drivers license providers.
https://comprarepatentediguida.com/
hm
een die problemen ondervindt of het theoretische deel van de rijexamens niet kunt halen.
bij ons en zonder examens weet je zeker dat je een echt,
https://cumparapermisdeconduceree.com/
Jeste li tražili gdje kupiti svoju autentičnu vozačku dozvolu? kontaktirajte https://kupitivozackudozvoluhrvatska.com/
best online store to buy gunns, ammo, bullets, rifles and more. checkout https://tacticalammozone.com/
¿Ha estado buscando dónde comprar su licencia de conducir auténtica? contacto https://comprarcarnetlicenciadeconducir.com/