从爆栈的问题来看,和泛型类型参数推断一毛钱关系没有。
你的问题在于,你希望通过一个确定类型的返回值,例如A,然后这个返回值是extends XXX的,然后通过这个来限定返回值的确定类型,这显然是错误的。
最直接的原因就是泛型方法内部的任何代码不能限定泛型类型参数,泛型类型参数必须在方法被调用的时候被确定,而不是方法执行的时候确定。或者你可以简单理解为泛型类型参数是外部/调用方限定的。
这与推断一毛钱关系没有。
T extends ToWriting
是指外部会提供一个满足extends ToWriting条件的T,而不是说你可以随意返回一个东西只要满足这个条件就可以了。
当然了,其实你最终的需求准应该是泛型的特化,这个C#和Java都不支持。