Java アプリを 1.6 から 1.8 に移植していますが、コンパイラはgetAbstractTransactionCriteria()
次のコードのメソッドに満足していません。
public abstract class AbstractTransaction ...
public class TemplateTransaction extends AbstractTransaction ...
public class Transaction extends AbstractTransaction ...
abstract class AbstractTransactionCriteria {...}
class TransactionCriteria extends AbstractTransactionCriteria {...}
class TemplateCriteria extends AbstractTransactionCriteria {...}
TransactionCriteria getAbstractTransactionCriteria(Class<Transaction> c) {...}
TemplateCriteria getAbstractTransactionCriteria(Class<TemplateTransaction> c) {...}
Object
コンパイラは、2 つのメソッドの消去が同じであることを教えてくれます。山かっこ内のものがコンパイラによって置き換えられることを他の場所で見たので、これを受け入れることができます。
引数c
はポリモーフィズムを実現するためだけにあり (メソッド本体では使用されません)、これは Java 1.6 で完全に機能していました。
1.8 で同じ結果を得るにはどうすればよいですか?