| class TestClass { |
| public final class TestMapper<X> { |
| |
| public <U, T extends Mapping<X, U>> T mapType() { |
| SimpleMapping<X, U> mapping = new SimpleMapping<X, U>(); |
| return (T) mapping; //This is reports "Inconvertible types; cannot cast TestClass.SimpleMapping<X,U> to 'T'" |
| } |
| } |
| private final class SimpleMapping<X, U> implements Mapping<X, U> {} |
| public interface Mapping<F, U> {} |
| } |
| class TestClass1 { |
| public final class TestMapper<X> { |
| |
| public <U, T extends Mapping<X, U>> T mapType() { |
| Mapping<X, U> mapping = new SimpleMapping<X, U>(); //Changed type to interface |
| return (T) mapping; |
| } |
| } |
| private final class SimpleMapping<X, U> implements Mapping<X, U> {} |
| public interface Mapping<F, U> {} |
| } |