mario_sunny:
Eu fui encarregado de retirar o maior número de @SupressWarning
s quanto possível na nossa base de código, e eu não tenho certeza de como contornar esta questão em particular.
Eu tenho esse método externo que retorna um Serializable
objeto e um tipo genérico T extends Serializable
que eu gostaria de converter o objeto para.
Aqui está uma versão simplificada do código:
class A <T extends Serializable> {
public T someMethod() {
Serializable result = someExternalMethod(...);
T convertedObject = (T) result; // produces unchecked cast warning
return convertedObject;
}
}
É possível realizar essa conversão sem produzir um aviso elenco desmarcada (assumindo que o método externo não pode ser alterado)?
Esta é Java 8 .
ZoomOut:
Para estender a resposta de ferpel você pode passar o tipo como um parâmetro
class A <T extends Serializable> {
public T someMethod(Class<T> type) {
Serializable result = someExternalMethod(...);
return type.cast(result);
}
}