<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.5-SNAPSHOT</li>
<li>Operating System version: macos 10.15.2</li>
<li>Java version: openjdk 11.0.5</li>
</ul>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/apache/dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/apache/dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: 2.7.x</li>
<li>Operating System version: centos</li>
<li>Java version: 1.8</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<p dir="auto">Dubbo在构建服务调用参数信息时，现有的TypeDefinition无法对<a href="https://github.com/vigna/fastutil">FastUtil</a>中的Map进行解析。<br>
例如，FastUtil中的Int2ObjectMap的<code class="notranslate">getActualTypeArguments</code>参数长度为1，<code class="notranslate">MapTypeBuilder</code>会对长度进行校验，导致抛出IllegalArgumentException异常。<br>
TypeBuilder是支持SPI扩展的，可以自定义实现支持FastUtil的Builder，但是由于TypeBuilder中没有定义优先级顺序，因此在<code class="notranslate">TypeDefinitionBuilder</code>无法提升自定义TypeBuilder的优先级，导致无法构建相应参数定义信息。</p>
<p dir="auto">异常信息：<br>
[ServiceDefinitionBuilder] Map type [it.unimi.dsi.fastutil.ints.Int2ObjectMap&lt;it.unimi.dsi.fastutil.shorts.ShortList&gt;] with unexpected amount of arguments [[Ljava.lang.reflect.Type;@38866769].[interface it.unimi.dsi.fastutil.shorts.ShortList]</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/13111067/84353556-f9860780-abf1-11ea-8730-668bcfaf7a11.png"><img src="https://user-images.githubusercontent.com/13111067/84353556-f9860780-abf1-11ea-8730-668bcfaf7a11.png" alt="image" style="max-width: 100%;"></a></p>