Здесь я рассматриваю несколько случаев, через которые вы можете очистить концепцию
1. ArrayList<String> arr = new ArrayList<String>();
2. ArrayList<String> arr = new ArrayList();
3. ArrayList arr = new ArrayList<String>();
ArrayList<String> arr
является ссылочной переменной ArrayList
с типом String
, которые ссылаются на объект ArralyList
типа String
. Это означает, что он может содержать только объект типа String.
Строго для String
не для Raw Type, поэтому он никогда не будет предупреждать.
arr.add("hello");// alone statement will compile successfully and no warning.
arr.add(23); //prone to compile time error.
//error: no suitable method found for add(int)
В этом случае ArrayList<String> arr
является строгим типом, но ваш объект new ArrayList();
является сырым типом.
arr.add("hello"); //alone this compile but raise the warning.
arr.add(23); //again prone to compile time error.
//error: no suitable method found for add(int)
здесь arr
является строгим типом. Таким образом, он будет поднимать ошибку времени компиляции при добавлении integer
.
Предупреждение: - Объект типа
blockquote>Raw
ссылается на типStrict
Referenced VariableArrayList
.Случай 3
В этом случае
ArrayList arr
является сырым типом, но ваш Objectnew ArrayList<String>();
является строгим типом.arr.add("hello"); arr.add(23); //compiles fine but raise the warning.
Он добавит в него любой тип объекта, потому что
arr
является сырым типом.Внимание: - A
blockquote>Strict
Тип Объект ссылается на araw
тип, на который ссылается переменная.
Я столкнулся с чем-то похожим, для меня проблема была в этой строке:
from pymongo.objectid import ObjectId
Вызов, похоже, работает в версиях PyMongo & lt; 2.2
В pymongo 2.2 вызов для импорта objectid:
from bson.objectid import ObjectId
Я попытался установить bson с pip напрямую. Удалите и установите pymongo вместо этого, и ошибка не появилась снова.
Похоже, что они уже знают (см. этот запрос на растяжение ), но никто не создал запрос на растяжение против ветви разработки. Вы можете попробовать исправить это и отправить новый запрос на pull.
Я на Python3 (в 2017 году) и обнаружил, что следующие работы:
from pymongo import MongoClient
from bson import ObjectId