import java.util.List; public class OldRawAPI { public void set(List arg) { } // OK to warn in 1.5 code public List get() { return null; } // OK to warn in 1.5 code } import java.util.ArrayList; import java.util.List; public class Sub extends OldRawAPI { @Override public void set(List arg) { // overrides method with raw argument type super.set(arg); arg.set(0, "A"); // 'arg' is forced to be raw } void process (OldRawAPI thing) { thing.get().add("x"); // get() returns a raw List List strings= thing.get(); // unchecked conversion from raw List ArrayList al= (ArrayList) thing.get(); // unchecked cast } }