Hola
El ejercicio está bien. Como ejercicio puedes probar a hacer el código más breve. Puedes ver este ejemplo
https://www.aprenderaprogramar.com/foros/index.php?topic=2873.0 para ver cómo
@SuppressWarnings es una directiva para el analizador semántico. Estas directivas pueden variar según el IDE y versión de Java que se use, es decir, no todos los IDE y versiones aceptan las mismas directivas.
En este caso mi recomendación es que no prestes demasiada atención a este warning en concreto, en otros compiladores no indica ningún tipo de problema.
De todas formas para quien quiera consultar los posibles valores para @SuppressWarnings en Eclipse (en inglés):
Lista para Eclipse Galileo:
all: to suppress all warnings
boxing: to suppress warnings relative to boxing/unboxing operations
cast: to suppress warnings relative to cast operations
dep-ann: to suppress warnings relative to deprecated annotation
deprecation: to suppress warnings relative to deprecation
fallthrough: to suppress warnings relative to missing breaks in switch statements
finally: to suppress warnings relative to finally block that don’t return
hiding: to suppress warnings relative to locals that hide variable
incomplete-switch: to suppress warnings relative to missing entries in a switch statement (enum case)
nls: to suppress warnings relative to non-nls string literals
null: to suppress warnings relative to null analysis
restriction: to suppress warnings relative to usage of discouraged or forbidden references
serial: to suppress warnings relative to missing serialVersionUID field for a serializable class
static-access: to suppress warnings relative to incorrect static access
synthetic-access: to suppress warnings relative to unoptimized access from inner classes
unchecked: to suppress warnings relative to unchecked operations
unqualified-field-access: to suppress warnings relative to field access unqualified
unused: to suppress warnings relative to unused code
Lista para Indigo adds:
javadoc: to suppress warnings relative to javadoc warnings
rawtypes: to suppress warnings relative to usage of raw types
static-method: to suppress warnings relative to methods that could be declared as static
super: to suppress warnings relative to overriding a method without super invocations
Lista para Juno adds:
resource: to suppress warnings relative to usage of resources of type Closeable
sync-override: to suppress warnings because of missing synchronize when overriding a synchronized method
Kepler y Luna usan lo mismo que Juno. Otros IDEs puede variar.
Saludos