Questão sobre classes Wrapper

What will happen if you try to execute the following code fragment?

1.   public class Wrapper {
2.      public static void main(String[] args) {
3.         Boolean b = new Boolean("correct");
4.         try {
5.            Byte by = new Byte("201");
6.            Integer i = new Integer("123");
7.            Double db = new Double(2.2d);
8.         } catch (NumberFormatException nfe) {
9.            System.out.println ("Bad number!");
10.        }
11.     }
12.  }

A - NumberFormatException when executing line 5
B - NumberFormatException when executing line 7
C - No output is generated
D - Exception is thrown at line 3, incorrect boolean value
E - Compile time error

Fácil, mas pode pegar muita gente :wink:

Acho q ‘A’. Na linha 5 compila pq Byte recebe String mas como o valor é maior q o suportado ele da pau na execução.
:lol:

Letra A.
Byte é um tipo primitivo de dado, o qual suporta de -128 a 127, logo 201 é maior.

Certo…
A linha 3 parece que criará problemas, mas qualquer string usada no contrutor de Boolean que não seja “true” (case insensitive), resultará em false. :slight_smile:

[quote=“Schuenemann”]Certo…
A linha 3 parece que criará problemas, mas qualquer string usada no contrutor de Boolean que não seja “true” (case insensitive), resultará em false. :)[/quote]

Humm, nao sabia dessa, muito menos que o construtor de um boolean aceitasse parametros… rs! :slight_smile:
Quer dizer, mesmo que eu coloque false (dããÃÃãã) resultará em false, nao pelo false passado, mas por default?

Exatamente:

[code]public Boolean(boolean value) {
this.value = value;
}

public Boolean(String s) {
this(toBoolean(s));

public boolean booleanValue() {
return value;

private static boolean toBoolean(String name) {
return ((name != null) && name.equalsIgnoreCase("true"));
}[/code]