为什么 foreach 不能与 String 一起使用?

我正在尝试类似的东西


String s = "test string";

for(Character c: s) {


}

编译器报告错误。我想知道为什么我不能将 foreach 与 String 一起使用?


白衣染霜花
浏览 304回答 1
1回答

拉丁的传说

原因在JLS 14.14.2 中列出:EnhancedForStatement:    for ( {VariableModifier} LocalVariableType VariableDeclaratorId : Expression ) Statement...的类型Expression必须是原始类型的子类型Iterable或数组类型(第 10.1 节),否则会发生编译时错误。AString不是Iterable数组类型的子类型或数组类型。因此.... 编译错误。正如@shmosel 所提到的,您可以遍历char[]返回的s.toCharArray[]. 但是,这将创建一个新数组1。1 - ... 除非您的 JVM 的 JIT 编译器足够聪明来优化它。我不认为他们目前可以做到这一点,而且我不会打赌想要实现这种优化的 Java 设计者。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java