para - ¿Hay alguna palabra clave en Java que sea similar a la palabra clave ''AS'' de C#
palabras claves en lenguaje c (3)
Esta pregunta ya tiene una respuesta aquí:
- Cómo emular C # as-operator en Java 6 respuestas
Como sabemos, C # proporciona una palabra clave AS que realiza una comprobación automática de si el Objeto es de un tipo y si lo es, luego lo convierte en el tipo necesario;
public class User
{
}
....
Object obj = someObj;
User user = obj As User;
...
Aquí en el ejemplo anterior, un objeto obj puede ser de tipo Usuario o algún otro tipo. El usuario obtendrá un objeto de tipo Usuario o un valor nulo. Esto se debe a que la palabra clave As de C # primero realiza una comprobación y, si es posible, realiza una conversión del objeto al tipo resultante.
Entonces, ¿hay alguna palabra clave en Java que sea equivalente a la palabra clave AS de C #?
No, puedes verificar con instanceof
y luego lanzar si coincide
User user = null;
if(obj instanceof User) {
user = (User) obj;
}
Puedes crear un método de ayuda.
public static T as(Object o, Class<T> tClass) {
return tClass.isInstance(o) ? (T) o : null;
}
User user = as(obj, User.class);
Sin palabra clave, pero para completar, le daré el equivalente de 1 línea:
User user = obj instanceof User ? (User) obj : null;
(Puede que no tenga que tener el elenco explícito, no estoy seguro).