Estou fazendo alguns testes de sintaxe (Iniciante aqui!) e não estou conseguindo entender exatamente o que estou errando. Achei que ter um retorno true ou false seria o suficiente para a execução de uma função ternária.
import java.io.File;
public class mais
{
public static void main(String[] args)
{
File directory = new File("C:\\Estudos\\Projetos\\Java\\Archives\\documents");
directory.exists()
? System.out.print("Directory already exists")
: directory.mkdir();
}
}
Qual o problema exatamente?
O que você espera obter como resposta da comparação ternária ?
Basicamente ela é:
condicao ? true : false;
Essa é a exception que está sendo gerada:
Exception in thread “main” java.lang.Error: Unresolved compilation problems:
Syntax error on token “)”, invalid Expression
Syntax error, insert “)” to complete Expression
at projectArchives.mais.main(mais.java:25)
Tinha esquecido de colar ela antes. Eu quero saber se a sintaxe/lógica do que escrevi tá correto e se não o que eu deveria mudar.
Uma verificação ternária é usada em uma atribuições de valores. Não serve para o que você quer, que é executar coisas diferentes caso o diretórios exista ou não.
Para o que você quer, o jeito mais simples é usar o bom e velho if:
if (directory.exists()){
System.out.print("Directory already exists");
}else{
directory.mkdir();
}
Abraço.
1 curtida
Entendido! Era essa minha dúvida mesmo, valeu pessoal @Jonathan_Medeiros @TerraSkilll .