fundido não verificada a partir de X para tipo genérico que se estende X

mario_sunny:

Eu fui encarregado de retirar o maior número de @SupressWarnings 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 Serializableobjeto e um tipo genérico T extends Serializableque 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);
        }
    }

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=209531&siteId=1
Recomendado
Clasificación