code: public class AnotherDirtyOne { private final int i =10; private byte k = i; }
compiles cleanly, but the code public class AnotherDirtyOne { int i =10; byte k = i; } gives compiler error requiring explicit cast for byte k=i why does code 1 compile correctly?