首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Kotlin不允许使用charAt

Kotlin不允许使用charAt
EN

Stack Overflow用户
提问于 2021-11-02 09:23:34
回答 1查看 136关注 0票数 4

为什么java可以编译,而kotlin不能?以及如何在kotlin中调用charAt

Java:

代码语言:javascript
运行
AI代码解释
复制
import java.nio.CharBuffer;

public class Test {
    public static void test() {
        CharBuffer buffer = CharBuffer.wrap("asd");
        buffer.charAt(0);
    }
}

Kotlin:

代码语言:javascript
运行
AI代码解释
复制
import java.nio.CharBuffer

class TestKotlin {
    fun test() {
        val buffer = CharBuffer.wrap("asd")
        buffer.charAt(0)
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-02 11:10:41

我从观察this old issue的角度推断,Kotlin开发人员曾经意外地将CharBuffer.charAt()CharBuffer.get()视为等价的,并将charAt()方法隐藏在Kotlin中,并将其映射到get()。他们这样做可能是为了推广数组访问语法(方括号)的使用,并避免所谓的冗余。

也许后来,当上面的问题得到解决时,他们错过了揭开方法的机会。

在科特林,buffer.charAt(i)就是buffer[buffer.position() + i]。您可以编写一个扩展函数,以便可以继续使用它:

代码语言:javascript
运行
AI代码解释
复制
fun CharBuffer.charAt(index: Int) = this[position() + index]

如果选择越界索引,则错误消息的信息量将略低于原始方法中的错误消息。

也许有人应该在YouTrack上为这个开一个问题……

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69814560

复制
相关文章
JavaScript charAt() 方法运用
今天偶然同事问了一个问题,如何取到字符串中的每个值,我第一瞬间反应的是,用下标撒,循环打印撒,不就行了,然而并不行,因为是字符串并不是数组,一瞬间就尴尬了,竟然不会做,后面就查阅了一下资料,看来自己的虽然做了这么久了,但是有些基础都忘了,好尴尬,接下来就介绍解决问题的流程,先来说问题
我乃小神神
2019/03/20
6470
Kotlin | 使用Kotlin改造Android Gradle
Gradle5.0+已经支持了Kotlin,但碍于Android Studio目前适配并不是很好,所以并不建议开发使用,至于为什么,在文章末尾也给出了具体原因。
Petterp
2022/02/09
9650
Kotlin | 使用Kotlin改造Android Gradle
kotlin 使用viewStub
ViewStub是一个轻量级的的View,继承于ViewGroup,没有任何尺寸,不绘制任何东西,因此绘制或者移除时更省时。(ViewStub不可见,大小为0)
全栈程序员站长
2022/09/13
5370
Kotlin---使用AndroidStudio配置Kotlin环境
使用Android Studio 3.0,并且在Android Studio中创建或者导入一个Project
None_Ling
2018/12/05
1.6K0
Kotlin---使用AndroidStudio配置Kotlin环境
从大厂不允许使用 SELECT * 说开去
作为开发人员数据库查询语句我们经常用到,但是你是否想过为什么大厂都会强制开发人员禁止使用 SELECT * 语句?你一定会说因为效率低啊,多差除了一些无用的数据。如果是这么想的,那就继续听我来说。
喵叔
2020/10/29
1.1K0
Kotlin入门教程,快使用Kotlin吧
数组用Array类实现,和Java不同的地方在于,Array类有一个size属性表示数组长度,还有get和set方法,但是也可以使用array[position]的方式获取
用户2802329
2018/08/07
1K0
Kotlin入门教程,快使用Kotlin吧
【Kotlin】Kotlin 中使用 ButterKnife ( 仅用于适配 Kotlin 语言 | 不推荐新项目使用 )
1 . 情况说明 : ButterKnife 已经停止维护 , 新项目直接使用 视图绑定 , 数据绑定 进行开发 , 本篇博客只是为了适配老版本项目 ;
韩曙亮
2023/03/27
2.5K0
为什么不允许使用 Java 静态构造函数?
不允许使用 Java 静态构造函数,但是为什么呢?在深入探讨不允许使用静态构造函数的原因之前,让我们看看如果要使 构造函数静态化 会发生什么。
淡定的蜗牛
2019/10/28
3.1K0
Android Kotlin之kotlin-android-extensions使用
kotlin-android-extensions插件可以直接使用资源,节省findviewbyid(), 不需要添加任何额外代码,也不影响任何运行时体验。
李小白是一只喵
2021/01/13
1.1K0
AndroidStudio中集成使用Kotlin(一)AndroidStudio中集成使用Kotlin(一)
AndroidStudio中集成使用Kotlin(一) 在Android开发中,不仅仅可以使用Java作为它的开发语言,好早就开始流行使用Kotlin进行Android开发了,集成这种语言也是相当简单。 一、安装插件 使用AndroidStudio -> File -> Settings -> Plugins -> Browse repositories -> 搜索 kotlin ,然后选择哪个名字为 Kotlin 的安装就好,其他的任何都可以不要。 二、gradle添加依赖 Module的bu
Xiaolei123
2018/06/28
2.1K0
使用 Kotlin 构建 Android 应用 | Kotlin 迁移指南 (上篇)
今年五月份的 Google I/O 上,我们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言。接下来的几周我们将会为大家连载关于 Kotlin 迁移指南的系列文章,包含 Kotlin 的优势和介绍 (上篇)、迁移到 Kotlin (中篇),以及使用 Kotlin 的常见问题 (下篇),帮助开发者们顺利迁移并开始使用 Kotlin 构建 Android 应用。
Android 开发者
2019/11/01
1.3K0
使用 Kotlin 构建 Android 应用 | Kotlin 迁移指南 (上篇)
RPC接口不允许使用枚举类型。为什么?
RPC是Remote Procedure Call的缩写。中文名是:远程服务调用。简单来说就是一个节点提供服务(称为服务端),一个节点消费服务(客户端)。
玖柒的小窝
2021/12/11
1.1K0
RPC接口不允许使用枚举类型。为什么?
使用 Kotlin Symbol Processing 1.0 缩短 Kotlin 构建时间
作者 / 软件工程师 Ting-Yuan Huang 和 Jiaxiang Chen
Android 开发者
2022/03/10
3.8K0
使用 Kotlin Symbol Processing 1.0 缩短 Kotlin 构建时间
使用kotlinc、kotlin、java命令进行kotlin程序运行
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
易寒
2022/02/07
1.4K0
java线程池,阿里为什么不允许使用Executors?
线程池可以通过池看出来是一个资源集,任何池的作用都大同小异,主要是用来减少资源创建、初始化的系统开销。
落跑架构师M
2019/12/30
1.1K0
java线程池,阿里为什么不允许使用Executors?
apache不允许在该目录下使用符号连接
对/var/www/html目录的一个权限的设置,options中Indexes表示当网页不存在的时候允许索引显示目录中的文件,FollowSymLinks是否允许访问符号链接文件。有的选项有ExecCGI表是否使用CGI,如Options Includes ExecCGI FollowSymLinks表示允许服务器执行CGI及SSI,禁止列出目录。SymLinksOwnerMatch表示当符号链接的文件和目标文件为同一用户拥有时才允许访问。AllowOverrideNone表示不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件,修改为:AllowOverride All 表示允许.htaccess。Order对页面的访问控制顺序后面的一项是默认选项,如allow,deny则默认是deny,Allowfromall表示允许所有的用户,通过和上一项结合可以控制对网站的访问控制
呆呆
2021/05/17
6890
【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )
1 . 定义普通的接口 : 使用 interface 声明接口 , 接口中的方法没有方法体 , 也不用 abstract 关键字修饰 ;
韩曙亮
2023/03/27
7330
Kotlin 集合使用详细解析
Kotlin 标准库提供了基本集合类型的实现: set、list 以及 map。 一对接口代表每种集合类型:
李林LiLin
2021/02/08
4.2K0
点击加载更多

相似问题

如何使用charAt()?

45

Java:使用charAt将输入与charAt进行比较

20

CharAt函数

11

在java中使用charAt

34

使用charAt()更改字符数组

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档