2012-08-09 20 views
10

Estoy usando NetBeans IDE 7.1.2. Cuando compilo mi solicitud me sale el siguiente aviso:NetBeans - Advertencia de JComboBox - falta de argumentos de tipo para la clase genérica JComboBox <E>

advertencia: [rawtypes] encontraron tipo cruda: JComboBox ciudad = new javax.swing.JComboBox(); argumentos de tipo que faltan para la clase genérica JComboBox donde E es un tipo variable: E se extiende objeto declarado en la clase JComboBox

Por lo tanto, supongo que tengo que declarar el JComboBox como:

JComboBox<String> city = new JComboBox<String>(); 

Pero, ¿cómo Cómo hago esto en NetBeans, usando el Matisse (Swing GUI Builder)? Por favor ayuda.

Respuesta

1

Java 7 introdujo los genéricos al JComboBox. Una solución a su problema sería usar Java 6.

Apuesto a que la última versión de Netbeans (7.2) tendrá una solución para esto (aunque no estoy seguro).

De lo contrario, si recuerdo bien, puede ver el código generado por Netbeans. Si es así, es posible que pueda agregar el argumento genérico usted mismo. Han pasado muchos meses desde que vanamente con Netbeans aunque ...

Además, si el Netbeans le permite, se puede añadir el @SupressesWarnings anotación encima de la declaración JComboBox (o incluso por encima de la declaración de clase, a pesar de que cambia su alcance) . Sería algo así:

@SuppressWarnings("rawtypes") 
JComboBox city = new JComboBox(); 

Hay un montón de opciones, pero Netbeans puede contener una copia de la aplicación de algunos de ellos.

+0

Nick He intentado cambiar el código a: city = new javax.swing.JComboBox (); (NetBeans no me permite cambiar las variables de declaración, por lo tanto, mi ciudad se define como private javax.swing.JComboBox city;). Cuando hice esto recibí la siguiente advertencia: argumentos de tipo redundante en una nueva expresión (en su lugar, use el operador de diamante). – jadrijan

+1

No estoy seguro de que pueda evitar la advertencia sin tener que degradar su versión de Java o actualizar su Netbeans IDE. Afortunadamente, es solo una advertencia, por lo que no afectará tu código real. Si le molesta, puede intentar agregar esta línea encima de su declaración: '@SuppressWarnings (" tipos de raw ")' También agregaré esto a la respuesta. No conozco una forma de desactivar las advertencias del compilador en Netbeans, alguien más puede saberlo. –

+0

Muchas gracias, Nick. Al menos ahora sé que no estoy haciendo nada mal según la codificación. Espero que esto esté arreglado en la versión 7.2, todavía no lo he probado, esperando a que Oracle lo publique con JDK. – jadrijan

15

En Netbeans 7.2 puede hacer clic en la sección Código para JComboBox, y luego escribir tipo en "Tipo de parámetros", en su caso: <String>.

+4

Esto ayudó, solo una pequeña mejora para aclarar cómo llegar a la sección de códigos: haga clic con el botón derecho en JComboBox, seleccione _Properties_, seleccione la sección _Code_ (en la parte superior de la ventana de propiedades). _Type Parameters_ está cerca de la parte superior. – chr

+0

@chr y recuerde escribir el parámetro tipo _incluyendo_ los corchetes angulares. –