原版插件是 ASM Bytecode Outline. 这款插件翻译成字节码指令,看起来比较晕.个人改了一个版本(没有提交到 JB 仓库,需要自己去 github 下载),加入了 cfr decompile 选项,看起来更加清晰.
举个例子
kotlin 代码
data class TableModel(val tableName: String,
val columns: List<ColumnModel>) {
}
cfr decompile 反编译后则是,是不是一下子就明白 data 的作用了呢
public final class TableModel {
@NotNull
private final String tableName;
@NotNull
private final List<ColumnModel> columns;
@NotNull
public final String getTableName() {
return this.tableName;
}
@NotNull
public final List<ColumnModel> getColumns() {
return this.columns;
}
public TableModel(@NotNull String tableName, @NotNull List<ColumnModel> columns) {
Intrinsics.checkParameterIsNotNull((Object)tableName, (String)"tableName");
Intrinsics.checkParameterIsNotNull(columns, (String)"columns");
this.tableName = tableName;
this.columns = columns;
}
@NotNull
public final String component1() {
return this.tableName;
}
@NotNull
public final List<ColumnModel> component2() {
return this.columns;
}
.... 等等
插件给需要的朋友:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.