Dado o trecho de código abaixo:

public static void metodo01() {
    Class.forName("ClasseQueNaoExiste");
}
public static void metodo02() {
    java.io.File.createTempFile("pre", "suf");
}
public static void metodo03() {
    Integer.class.newInstance();
}
public static void main(String[] args) {
    metodo01();
    metodo02();
    metodo03();
}

Uma classe com estes quatro métodos não compila. Quais passos são necessários para fazê-la
compilar? Altere o código para que a classe compile sem erros.


Bom eu fiz desse jeito com try catch, e compila, mas para aparecer a msg que o metodo foi chamado, eu tenho que colocar no catch, sou novo em java e poo, e gostaria de saber se esta correto

package exercicio30;

import java.io.*;
import java.util.*;

public class Exercicio30 {

    public static Scanner in = new Scanner(System.in);

    public static void main(String[] args) {

        System.out.println("--------------");
        System.out.println("CHAMADA DE METODOS");
        System.out.println("1°---------METODO");
        System.out.println("2°---------METODO");
        System.out.println("3°---------METODO");
        int opcao = in.nextInt();
        switch (opcao) {
            case 1:
                metodo01();
                break;
            case 2:
                metodo02();
                break;
            case 3:
                metodo03();
                break;
            default:
                System.out.println("Numero inválido");
                break;

        }

    }

    public static void metodo01() {
        try {
            Class.forName("ClasseQueNaoExiste");

        } catch (ClassNotFoundException e) {
            System.out.println("1° método chamado com sucesso!");

        }

    }

    public static void metodo02() {
        try {
            java.io.File.createTempFile("pre", "suf");
        } catch (IOException e) {
            System.out.println("2° método chamado com sucesso!");
        }

    }

    public static void metodo03() {
        try {
            Integer.class.newInstance();
        } catch (IllegalAccessException | InstantiationException e) {
            System.out.println("3° método chamado com sucesso!");

        }
    }
}

Salve, João!

Partindo da priori que apenas era necessário ajustar e fazer compilar… você foi além. Tratou as exceções, montou um menu. Ficou legal.

Orientaria apenas uma segunda olhada sobre o metodo02():

  • Uma vez realizado o import do pacote, não precisa fazer o FQN (java.io.File).
  • Somente esta instrução não é capaz de lançar excessão e por isso no menu ao digitarmos 2 nada acontece.
  • Poderá contornar isso, simplesmente, lançando uma excessão explicitamente, :yum:.

Assim, fiz isso então
public static void metodo02() {
File arquivo = new File(“arquivo.txt”);

    try {
        if (arquivo.exists() == false) //se não haver esse arquivo ele cria um
        {
            arquivo.createNewFile();
        }
        java.io.File.createTempFile("pre", "suf");
        System.out.println("2° método chamado");
        System.out.println("Cria um novo arquivo vazio no diretório especificado!");
    } catch (IOException e) {

    }

Para ele criar um arquivo txt, haha…obg por me responder

Fala, João.

Não sei como está o aproveitamento do seu exercício - se está incrementando com mais coisas, ou, até, quem sabe, adicionou mais coisas como o fez com o menu coisa e tal - (:slight_smile:) -
mas, no metodo02(), apenas a título de curiosidade, bastaria adicionar uma linha de código (:grin:):

//... restante do código
try {
            java.io.File.createTempFile("pre", "suf");
            throw new IOException(); // lança a excessão
        } catch (IOException e) {
            System.out.println("2° método chamado com sucesso!");
        }
//... restante do código
1 curtida

Blz, vlw, vdd, fica mais optimizado o codigo