Java 中的 Kotlin 方法

鱼半人马

我正在尝试用 Java 编写下面用 Kotlin 编写的代码。我无法创建 DefaultElementsAdapter,因为我无法正确使用语法。

HtmlRecycler.Builder(this@MainActivity)  
    .setSource(networkSource)  
    .setAdapter(DefaultElementsAdapter(this@MainActivity) { element, i, view ->  
    }})
    .setRecyclerView(recyclerView)  
    .setLoadingCallback(object : HtmlRecycler.LoadCallback {  
        override fun onLoadingStart() {  
            progressBar.visibility = View.VISIBLE  
        }  
        override fun onLoaded(document: Document?) {  
            progressBar.visibility = View.GONE
    }  
    })  
    .build()

我无法获得正确的 Java 代码

    DefaultElementsAdapter adapter = new DefaultElementsAdapter(this, 

 /****How to create the kotlin adapter here****/


    );

            HtmlRecycler.Builder builder = new HtmlRecycler.Builder(this);
            builder.setSource(new StringSource(item.contentDescription))
                    .setRecyclerView(recyclerView)
                    .setAdapter(adapter)
            .build();

Kotlin 类是这样的

public final class DefaultElementsAdapter public constructor(context: android.content.Context, onClick: (m7mdra.com.htmlrecycler.elements.Element, kotlin.Int, android.view.View) -> kotlin.Unit) : m7mdra.com.htmlrecycler.adapter.ElementsAdapter {
    private final val context: android.content.Context /* compiled code */

    private final val onClick: (m7mdra.com.htmlrecycler.elements.Element, kotlin.Int, android.view.View) -> kotlin.Unit /* compiled code */

    public open fun onBindElement(holder: androidx.recyclerview.widget.RecyclerView.ViewHolder, position: kotlin.Int): kotlin.Unit { /* compiled code */ }

    public open fun onCreateElement(parent: android.view.ViewGroup, elementType: m7mdra.com.htmlrecycler.elements.ElementType): androidx.recyclerview.widget.RecyclerView.ViewHolder { /* compiled code */ }
}

我正在尝试使用库https://github.com/m7mdra/HtmlRecycler

茉莉花

DefaultElementAdapter构造函数期望它的第二个参数是 type 的函数(Element, Int, View) -> Unit,这意味着它必须接受 3 个参数,Element, IntintInteger在 Java 中) and View,并且不返回任何内容。

如果您在 Android 项目中启用了 Java 8 支持,则可以使用 lambda 表达式提供所需的函数:

DefaultElementsAdapter adapter = new DefaultElementsAdapter(this, (element, i, view) -> {
    // your code
    return Unit.INSTANCE;
});

如果你没有 Java 8 支持并且不能使用 lambdas,你总是可以创建一个Function3对象:

DefaultElementsAdapter adapter = new DefaultElementsAdapter(this, new Function3<Element, Integer, View, Unit>() {
    @Override
    public Unit invoke(Element element, Integer integer, View view) {
        // your code
        return Unit.INSTANCE;
    }
});

请注意,不幸的是,Unit.INSTANCE在这两种情况下,您都必须使用 Java返回这种需求背后的原因已经在这里解释

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在Kotlin中实现返回Collection的Java方法

来自分类Dev

Kotlin 中的 Java 泛型:在 Kotlin 中使用 Java 原始类型作为方法参数

来自分类Dev

在Kotlin中覆盖具有复杂类型的Java方法

来自分类Dev

如何在Kotlin中向Java类添加静态方法

来自分类Dev

在Kotlin中调用Java静态方法的可能性

来自分类Dev

如何从以转义符命名的Java Kotlin方法中调用?

来自分类Dev

从Kotlin调用Java varargs方法

来自分类Dev

我可以覆盖kotlin方法,该方法在Java中返回单元类型

来自分类Dev

我可以覆盖kotlin方法,该方法在Java中返回单元类型

来自分类Dev

在 Kotlin、Android 中重用方法

来自分类Dev

如何使用Lamba表达式使Kotlin中的Java方法调用不再那么冗长?

来自分类Dev

是StringBuffer是像Java中那样处理多个字符串串联的Kotlin方法吗?

来自分类Dev

从Kotlin调用需要Function参数的Java方法

来自分类Dev

Gradle Kotlin DSL中的kotlin(“ ...”)方法是什么?

来自分类Dev

在Kotlin中实施访客模式的最佳方法

来自分类Dev

Kotlin中数据类的Equals方法

来自分类Dev

如何在Kotlin中模拟静态方法?

来自分类Dev

引用Kotlin中特定实例的方法

来自分类Dev

使用Kotlin在方法中引发异常

来自分类Dev

在Kotlin中修改Swagger Codegen方法的contentHeader

来自分类Dev

方法(Kotlin)中的MutableList <object>变量

来自分类Dev

扩展方法在Kotlin中如何工作?

来自分类Dev

从 Kotlin 中的类更新 UI 的正确方法

来自分类Dev

在 Kotlin 中嵌套枚举的最佳方法?

来自分类Dev

Kotlin中的参考Java接口静态字段

来自分类Dev

Kotlin:测试中的java.lang.NoSuchMethodError

来自分类Dev

Java Math 类 Kotlin 中的类

来自分类Dev

Java中的方法与构造方法

来自分类Dev

从init块中的方法初始化Kotlin中的val

Related 相关文章

  1. 1

    在Kotlin中实现返回Collection的Java方法

  2. 2

    Kotlin 中的 Java 泛型:在 Kotlin 中使用 Java 原始类型作为方法参数

  3. 3

    在Kotlin中覆盖具有复杂类型的Java方法

  4. 4

    如何在Kotlin中向Java类添加静态方法

  5. 5

    在Kotlin中调用Java静态方法的可能性

  6. 6

    如何从以转义符命名的Java Kotlin方法中调用?

  7. 7

    从Kotlin调用Java varargs方法

  8. 8

    我可以覆盖kotlin方法,该方法在Java中返回单元类型

  9. 9

    我可以覆盖kotlin方法,该方法在Java中返回单元类型

  10. 10

    在 Kotlin、Android 中重用方法

  11. 11

    如何使用Lamba表达式使Kotlin中的Java方法调用不再那么冗长?

  12. 12

    是StringBuffer是像Java中那样处理多个字符串串联的Kotlin方法吗?

  13. 13

    从Kotlin调用需要Function参数的Java方法

  14. 14

    Gradle Kotlin DSL中的kotlin(“ ...”)方法是什么?

  15. 15

    在Kotlin中实施访客模式的最佳方法

  16. 16

    Kotlin中数据类的Equals方法

  17. 17

    如何在Kotlin中模拟静态方法?

  18. 18

    引用Kotlin中特定实例的方法

  19. 19

    使用Kotlin在方法中引发异常

  20. 20

    在Kotlin中修改Swagger Codegen方法的contentHeader

  21. 21

    方法(Kotlin)中的MutableList <object>变量

  22. 22

    扩展方法在Kotlin中如何工作?

  23. 23

    从 Kotlin 中的类更新 UI 的正确方法

  24. 24

    在 Kotlin 中嵌套枚举的最佳方法?

  25. 25

    Kotlin中的参考Java接口静态字段

  26. 26

    Kotlin:测试中的java.lang.NoSuchMethodError

  27. 27

    Java Math 类 Kotlin 中的类

  28. 28

    Java中的方法与构造方法

  29. 29

    从init块中的方法初始化Kotlin中的val

热门标签

归档