You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Kotlin代码转换为Java?请转换指定的MapObjectTapListener代码

Kotlin匿名类转Java代码修正

原Kotlin代码

private val mapObjectTapListener = object : MapObjectTapListener {
    override fun onMapObjectTap(mapObject: MapObject, point: Point): Boolean{
        Toast.makeText(applicationContext, "Эрмитаж — музей изобразительных искусств", Toast.LENGTH_SHORT).show()
        return true;
    }
 }

你的Java代码存在的问题

  • 变量类型错误:mapObjectTapListener是MapObjectTapListener类型,不能用void声明
  • 匿名类写法错误:Java中实现接口的匿名类必须用new MapObjectTapListener()格式
  • 方法参数缺少类型声明:onMapObjectTap的两个参数必须显式写出类型
  • 成员变量的初始化逻辑不符合Java语法规范

正确的Java代码

private final MapObjectTapListener mapObjectTapListener = new MapObjectTapListener() {
    @Override
    public boolean onMapObjectTap(MapObject mapObject, Point point) {
        Toast.makeText(getApplicationContext(), "Эрмитаж — музей изобразительных искусств", Toast.LENGTH_SHORT).show();
        return true;
    }
};

关键转换说明

  • Kotlin里object : 接口名的匿名内部类写法,对应Java的new 接口名() { ... }实现
  • Kotlin的val是只读变量,对应Java的private final修饰符
  • Java方法参数必须显式声明类型,无法像Kotlin那样省略
  • 若在Activity中,applicationContext通常用getApplicationContext()获取(如果原Kotlin代码中applicationContext已直接可用,也可保留原写法)

内容的提问来源于stack exchange,提问作者Иван Александров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:57:10