NetRunner: Java Mastery Guide 1.0 Help

Type Casting em Java

TYPE CASTING ├── Implícito (Widening) ├── Explícito (Narrowing) ├── Referência └── Autoboxing/Unboxing

Casting Implícito

Widening Casting

WIDENING PATH byte → short → int → long → float → double char ↗

Exemplos

// Conversões automáticas byte byteNum = 100; int intNum = byteNum; // byte para int int intValue = 10; double doubleValue = intNum; // int para double

Casting Explícito

Narrowing Casting

NARROWING PATH double → float → long → int → short → byte ↘ char

Exemplos

// Conversões manuais double doubleNum = 9.78; int intNum = (int) doubleNum; // double para int int largeNum = 130; byte byteNum = (byte) largeNum; // int para byte

Casting de Referência

Upcasting

// Classe pai para filho class Animal {} class Gato extends Animal {} Animal animal = new Gato(); // Upcast automático

Downcasting

// Filho para pai (requer verificação) Animal animal = new Gato(); if (animal instanceof Gato) { Gato gato = (Gato) animal; // Downcast explícito }

Autoboxing e Unboxing

Autoboxing

// Primitivo para Wrapper int primitivo = 42; Integer wrapper = primitivo; // Autoboxing

Unboxing

// Wrapper para primitivo Integer wrapper = 42; int primitivo = wrapper; // Unboxing

Verificações de Tipo

instanceof

Object obj = "teste"; if (obj instanceof String) { String str = (String) obj; System.out.println(str.length()); }

Pattern Matching (Java 16+)

Object obj = "teste"; if (obj instanceof String str) { System.out.println(str.length()); }

Conversões Comuns

String Conversions

// String para número String strNum = "42"; int num = Integer.parseInt(strNum); double dNum = Double.parseDouble("3.14"); // Número para String String str1 = String.valueOf(42); String str2 = Integer.toString(42);

Perda de Dados

Exemplos

// Perda de precisão int x = 128; byte b = (byte) x; // Overflow: -128 double pi = 3.14159; int iPi = (int) pi; // Truncado: 3

Boas Práticas

Recomendações

CASTING GUIDELINES ├── Prefira casting implícito ├── Verifique antes de downcast ├── Evite casting numérico arriscado └── Use métodos de conversão apropriados

Exemplo Seguro

// Verificação de range long longValue = 42L; if (longValue >= Integer.MIN_VALUE && longValue <= Integer.MAX_VALUE) { int intValue = (int) longValue; }

Casos Especiais

Char Casting

// Char para número char ch = 'A'; int ascii = ch; // 65 // Número para char int num = 66; char character = (char) num; // 'B'

Próximos Passos

Tópicos Relacionados

Palavra-chave var

26 June 2025