JailedBird / ArouterKspCompiler

Arouter KSP annotation processor
Apache License 2.0
72 stars 6 forks source link

使用withStringArrayList在接收参数地方会出现One type argument expected for typealias ArrayList<E> = ArrayList<E> #2

Closed fuxuanyang11 closed 1 year ago

fuxuanyang11 commented 1 year ago

如图 UK7TY %B_X121)V@{X2JK~1

JailedBird commented 1 year ago

如图 UK7TY %B_X121)V@{X2JK~1

可以提供下 @Autowired的字段么? 我这边看下什么原因

fuxuanyang11 commented 1 year ago

image

JailedBird commented 1 year ago

如图 UK7TY %B_X121)V@{X2JK~1

请更新最新的测试版本1.6.10-1.0.1-beta01, 然后重新生成代码; Bug原因: ArrayList在Kotlin属于typealias Class, 相似的类如下, 理论上都会出现问题(可以自行尝试下):

@SinceKotlin("1.1") public actual typealias ArrayList<E> = java.util.ArrayList<E>
@SinceKotlin("1.1") public actual typealias LinkedHashMap<K, V> = java.util.LinkedHashMap<K, V>
@SinceKotlin("1.1") public actual typealias HashMap<K, V> = java.util.HashMap<K, V>
@SinceKotlin("1.1") public actual typealias LinkedHashSet<E> = java.util.LinkedHashSet<E>
@SinceKotlin("1.1") public actual typealias HashSet<E> = java.util.HashSet<E>

本质上是我的代码没处理好TypeAlias Handling 这一块: image

参照kotlinPoet官方文档 TypeAlias Handling 解决了这个问题, 项目App模块也添加了对应的测试例子, 如果修复麻烦告知, 我更新正式版本😊

fuxuanyang11 commented 1 year ago

使用1.6.10-1.0.1-beta01版本没有问题了。有个问题:我ksp使用的版本是1.8.0-1.0.9,这个用1.6.10会有影响吗

JailedBird commented 1 year ago

可能会(KSP本身存在bug), 我明天给你打包一个1.8.0版本的分支, 我先暂时关闭这个Issue了哈

fuxuanyang11 commented 1 year ago

可能会(KSP本身存在bug), 我明天给你打包一个1.8.0版本的分支, 我先暂时关闭这个Issue了哈

👌,谢谢大佬

JailedBird commented 1 year ago

可能会(KSP本身存在bug), 我明天给你打包一个1.8.0版本的分支, 我先暂时关闭这个Issue了哈

👌,谢谢大佬

对应版本已发布, 请前往main分支README查看