java - Generic Types Related But Incompatible -
still trying grasp generics concept... line
public interface filestructure<l extends filestructurelevel<l>, r extends filestructureresource> extends nodestructure<l, r> gives following message:
type argument l#1 not within bounds of type-variable l#2   l#1,l#2 type-variables:     l#1 extends filestructurelevel<l#1> declared in interface filestructure     l#2 extends nodestructurelevel<l#2> declared in interface nodestructure now, seem trivial, type bounds different. however, confusing actually, narrowing bound, since
public interface filestructurelevel<e extends filestructurelevel> extends nodestructurelevel<filestructurelevel> so whatever l1 is, going extend l2. why mismatch? anyone?
further, given declaration
public interface nodestructure<l extends nodestructurelevel<l>, r extends nodestructureresource> and
public class filestructureresource implements nodestructureresource<file> why doesn't first line produce similar error related r, below:
type argument r#1 not within bounds of type-variable r#2   r#1,r#2 type-variables:     r#1 extends filestructureresource declared in interface filestructure     r#2 extends nodestructureresource declared in interface nodestructure 
change code
public interface filestructurelevel<e extends filestructurelevel>     extends nodestructurelevel<filestructurelevel> to
public interface filestructurelevel<e extends filestructurelevel>     extends nodestructurelevel<e> and happy. stands, filestructurelevel<l> not nodestructurelevel<l> required nodestructure, instead nodestructurelevel<filestructurelevel>. compiler trying tell you.
Comments
Post a Comment