Да, вам нужно явно подавлять предупреждения при каждом использовании clone()
.
. Это одна из причин, по которой вы можете предпочесть использовать конструкторы копирования вместо clone()
, если они доступны.
Кстати, в вашем коде, когда используется конструктор RawStringIterator(RawStringIterator i)
, первая инициализация stateStack
не нужна:
class RawStringIterator {
Stack<State> stateStack = new Stack<State>();
RawStringIterator(RawStringIterator i) {
stateStack = (Stack<State>) i.stateStack.clone();
}
/* ... */
}
Возможно, вы захотите удалить это.*