Почему NuGet не удается загрузить в Visual Studio 2012 после обновления до VS Update 3?

Я просто хочу добавить один пример такого непроверенного предупреждения, которое я вижу довольно часто. Если вы используете классы, реализующие интерфейс типа Serializable, часто вы будете вызывать методы, возвращающие объекты интерфейса, а не фактический класс. Если возвращаемый класс должен быть применен к типу, основанному на дженериках, вы можете получить это предупреждение.

Вот краткий (и несколько глупый) пример для демонстрации:

import java.io.Serializable;

public class SimpleGenericClass<T> implements Serializable {

    public Serializable getInstance() {
        return this;
    }

    // @SuppressWarnings("unchecked")
    public static void main() {

        SimpleGenericClass<String> original = new SimpleGenericClass<String>();

        //  java: unchecked cast
        //    required: SimpleGenericClass<java.lang.String>
        //    found:    java.io.Serializable
        SimpleGenericClass<String> returned =
                (SimpleGenericClass<String>) original.getInstance();
    }
}

getInstance () возвращает объект, который реализует Serializable. Это должно быть отлито для фактического типа, но это непроверенный литой.

13
задан Serg 11 July 2013 в 06:38
поделиться