Assume the following existing classes:
class A { public void foo() { ... }; ... } class A1 extends A { ... }; class A2 extends A { ... }; ... class A1000 extends A { ... };
now we need to create a variant of each Axx class that overrides the "foo" method. The main idea was as follows:
class B<T extends A> extends T { @Override public void foo () { ... }; }
But it is not possible to extend a class from one of their parameterized types.
The goal is to skip the following code:
class B1 extends A1 { @Override public void foo() { ... }; }; class B2 extends A2 { @Override public void foo() { ... }; }; .... class B1000 extends A1000 { @Override public void foo() { ... }; };
and allow statements such as:
... B<A643> b643 = new B<A643>; b643.foo(); ...
Any clues?
Thank you very much.
source share