¿Eclipse compara el valor estático antes de la compilación?

¿En este eclipse de cadena que muestra una advertencia de código muerto en "No coincide"?

 String b = ("goodString")==("goodString") ? "Condition Macth": "Not Match";

¿Comprueba la cadena incluso antes de compilar?

String a = ("goodString".equals("goodString")) ? "Condition Macth" : "Not Match";

Si cambio a .equals la advertencia se cierra.

Respuesta 1

Eclipse puede analizar su código para detectar el código muerto.

En este caso particular, muestra esa advertencia porque esos valores siempre tienen la misma identidad debido al internamiento de cadenas , por lo que la condición siempre es verdadera. Eclipse lo detecta y emite una advertencia.

Si usa equals, la comparación ya no es una expresión constante ( JLS § 15.28 ), y ya no se garantiza que regrese true. Por lo tanto, la advertencia desaparece.


Por cierto, siempre debes usar equalspara comparar cadenas.

Respuesta: 2

Estoy creando una aplicación que accede a una base de datos y actualmente tengo un SWT Shell que muestra la tabla principal. Desde esta tabla, los usuarios pueden abrir registros individuales y desde el interior de los registros el usuario ...

Esta es una pregunta de seguimiento de mi pregunta anterior. Estoy tratando de implementar un NavigableMap definido como NavigableMap <Timestamp, Event>. Necesitaría que este mapa sea como un caché para mí. Cada ...

Tengo una aplicación Java EE que utiliza JAX-WS 2.2 y tengo que implementarla en WebSphere Application Server 7, pero parece que esta versión de WAS es compatible con hasta JAX-WS 2.1. ¿Hay alguna forma de ...

En mi caso, uso solo el estado consultable de Flink. En particular, no me importan los puntos de control. Ante un evento, consulto el estado consultable solo después de un máximo de X minutos. Idealmente, eliminaría ...