Dúvida relacionado a um exercício (com erros?) de teste scjp da Kathy Sierra

Pessoal bom dia!

É o seguinte, estou tentando resolver um exercício da página 156 do livro da Kathy Sierra. Meu problema é o seguinte, estou achando que há um erro neste exercício. Eis o exemplo dado no livro:

Dado o código a seguir:

public class Fizz {
    int x = 5;
    public static void main(String args[]){
        final Fizz f1 = new Fizz();
        Fizz f2 = new Fizz();
        Fizz f3 = FizzSwicth(f1, f2);
        System.out.println((f1==f3)+" "+ (f1.x == f3.x));
    }
    static Fizz FizzSwicth(Fizz x, Fizz y){
    
    }
}

Qual é o resultado?

A. true, true
B. false true.
C. true false
D. false false
E. A compilação falha.
F. É lançada uma exceção no tempo de execução.

RESPOSTA: A.

Já achei estranho o código acima no método FizzSwitch porque o compilador já acusaria um erro já que não tem retorno no método. Então eu suponho que falta um código no método FizzSwitch. O que este método deveria retornar? Se retornasse o valor x como no exemplo seguinte:

public class Fizz {
    int x = 5;
    public static void main(String args[]){
        final Fizz f1 = new Fizz();
        Fizz f2 = new Fizz();
        Fizz f3 = FizzSwicth(f1, f2);
        System.out.println((f1==f3)+" "+ (f1.x == f3.x)); //true, true
    }
    static Fizz FizzSwicth(Fizz x, Fizz y){
        return x;
    }
}

O valor seria true, true.
Mas se retornasse y, o valor seria false true.

public class Fizz {
    int x = 5;
    public static void main(String args[]){
        final Fizz f1 = new Fizz();
        Fizz f2 = new Fizz();
        Fizz f3 = FizzSwicth(f1, f2);
        System.out.println((f1==f3)+" "+ (f1.x == f3.x)); //false, true
    }
    static Fizz FizzSwicth(Fizz x, Fizz y){
        return y;
    }
}

Então a menos que esteja enganado, este exercício está com um erro certo?

Pelo que foi dito aqui, sim.

Se o método foi definido com retorno Fizz ele deve retornar algum Fizz para que o código compile. Sem o corpo do método não há como saber o resultado daquela chamada.

Opa, segue o código do método que esta faltando.

static Fizz FizzSwicth(Fizz x, Fizz y) {
	final Fizz z = x;
	z.x = 6;
	return z;
}

Nossa! Valeu por esse código!