Лишить объект общего типа для возвратаJAVA

Программисты JAVA общаются здесь
Anonymous
Лишить объект общего типа для возврата

Сообщение Anonymous »

Есть ли способ отбросить объект для возврата значения метода?public static T convertInstanceOfObject(Object o) {
if (o instanceof T) {
return (T) o;
} else {
return null;
}
}
< /code>
Я также попробовал это, но это дало исключение времени выполнения, classcastexception: < /p>
public static T convertInstanceOfObject(Object o) {
try {
T rv = (T)o;
return rv;
} catch(java.lang.ClassCastException e) {
return null;
}
}
< /code>
Есть ли возможный способ сделать это легко: < /p>
String s = convertInstanceOfObject("string");
System.out.println(s); // should print "string"
Integer i = convertInstanceOfObject(4);
System.out.println(i); // should print "4"
String k = convertInstanceOfObject(345435.34);
System.out.println(k); // should print "null"
< /code>
Изменить: я написал рабочую копию правильного ответа: < /p>
public static T convertInstanceOfObject(Object o, Class clazz) {
try {
return clazz.cast(o);
} catch(ClassCastException e) {
return null;
}
}

public static void main(String args[]) {
String s = convertInstanceOfObject("string", String.class);
System.out.println(s);
Integer i = convertInstanceOfObject(4, Integer.class);
System.out.println(i);
String k = convertInstanceOfObject(345435.34, String.class);
System.out.println(k);
}


Подробнее здесь: https://stackoverflow.com/questions/145 ... -returning

Вернуться в «JAVA»