Непроверенное предупреждение о приведении происходит из-за того, как генерики Java работают во время выполнения.Из-за стирания типа во время выполнения тип списка просто List
, а не List<Thing>
.Это означает, что приведение считается небезопасным, даже если для человека вполне возможно взглянуть на код и увидеть, что проблем нет.
Хотя я согласен с вами, что подавление предупреждения не идеально, вв этом случае я думаю, что все в порядке.
Тем не менее, best решение будет заключаться в реализации интерфейса Parcelable
на Thing
.Таким образом, когда вы хотите передать List<Thing>
через намерение, вы можете написать:
intent.putParcelableArrayListExtra(THINGS, things)
И когда вы хотите прочитать его обратно:
things = intent.extras.getParcelableArrayListExtra(OtherActivity.THINGS)
Ни один изэто вызовет предупреждение компилятора.