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

亚当·李

我正在尝试类似的东西

String s = "test string";
for(Character c: s) {

}

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

斯蒂芬·C

原因在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 设计者。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么jQuery Selectable插件不能与foreach生成的列表一起使用?

来自分类Dev

为什么这个数组和 foreach 不能与 mysqli 一起使用?

来自分类Dev

为什么我的视图模型没有绑定并且不能与映射插件一起使用foreach

来自分类Dev

LibreOffice为什么不能与HUD一起使用?

来自分类Dev

为什么模拟不能与AsyncTask一起使用?

来自分类Dev

LibreOffice为什么不能与HUD一起使用?

来自分类Dev

为什么childElementCount不能与jQuery一起使用?

来自分类Dev

为什么javascript“ this”不能与“ each”一起使用?

来自分类Dev

setuid为什么不能与mount一起使用?

来自分类Dev

为什么JQuery不能与CryptoJS一起使用?

来自分类Dev

为什么 grep 不能与 iostat 一起使用?

来自分类Dev

为什么Quickbooks可以与Ubuntu一起使用,而不能与Fedora一起使用?

来自分类Dev

为什么它可以与$ scope一起使用,但不能与`this`一起使用?

来自分类Dev

为什么forEach标签不能与Tomcat一起使用,而对于Jetty来说一切都很好?

来自分类Dev

为什么此脚本不能与nohup一起使用,但是不能,不能呢?

来自分类Dev

为什么此脚本不能与nohup一起使用,但是不能,不能呢?

来自分类Dev

为什么使用函数声明不能与Web Worker一起使用?

来自分类Dev

为什么@forward命名前缀不能与使用Sass的变量一起使用?

来自分类Dev

为什么这个简单的代码可以与`exit`一起使用,而不能与'_exit`一起使用呢?

来自分类Dev

GET请求可与Postman一起使用,但为什么不能与ReactJS fetch一起使用?

来自分类Dev

为什么多个列表索引可以与__getitem__一起使用,而不能与__setitem__一起使用?

来自分类Dev

Scala Puzzler:为什么head不能与toSet一起使用,而与Set一起使用呢?

来自分类Dev

为什么IPython的timeit不能与set原义一起使用?

来自分类Dev

为什么可可绑定不能与框架类的typedef一起使用

来自分类Dev

Angular:为什么CSS证明不能与ng-repeat一起使用?

来自分类Dev

为什么路由不能与ElasticSearch Bulk API一起使用?

来自分类Dev

为什么Tfidfvectorizer中的token_pattern参数不能与scikit一起使用?

来自分类Dev

为什么数据绑定不能与PropertyChanged一起使用?

来自分类Dev

为什么我的$ templateCache设置不能与新的Angular路由器一起使用?

Related 相关文章

  1. 1

    为什么jQuery Selectable插件不能与foreach生成的列表一起使用?

  2. 2

    为什么这个数组和 foreach 不能与 mysqli 一起使用?

  3. 3

    为什么我的视图模型没有绑定并且不能与映射插件一起使用foreach

  4. 4

    LibreOffice为什么不能与HUD一起使用?

  5. 5

    为什么模拟不能与AsyncTask一起使用?

  6. 6

    LibreOffice为什么不能与HUD一起使用?

  7. 7

    为什么childElementCount不能与jQuery一起使用?

  8. 8

    为什么javascript“ this”不能与“ each”一起使用?

  9. 9

    setuid为什么不能与mount一起使用?

  10. 10

    为什么JQuery不能与CryptoJS一起使用?

  11. 11

    为什么 grep 不能与 iostat 一起使用?

  12. 12

    为什么Quickbooks可以与Ubuntu一起使用,而不能与Fedora一起使用?

  13. 13

    为什么它可以与$ scope一起使用,但不能与`this`一起使用?

  14. 14

    为什么forEach标签不能与Tomcat一起使用,而对于Jetty来说一切都很好?

  15. 15

    为什么此脚本不能与nohup一起使用,但是不能,不能呢?

  16. 16

    为什么此脚本不能与nohup一起使用,但是不能,不能呢?

  17. 17

    为什么使用函数声明不能与Web Worker一起使用?

  18. 18

    为什么@forward命名前缀不能与使用Sass的变量一起使用?

  19. 19

    为什么这个简单的代码可以与`exit`一起使用,而不能与'_exit`一起使用呢?

  20. 20

    GET请求可与Postman一起使用,但为什么不能与ReactJS fetch一起使用?

  21. 21

    为什么多个列表索引可以与__getitem__一起使用,而不能与__setitem__一起使用?

  22. 22

    Scala Puzzler:为什么head不能与toSet一起使用,而与Set一起使用呢?

  23. 23

    为什么IPython的timeit不能与set原义一起使用?

  24. 24

    为什么可可绑定不能与框架类的typedef一起使用

  25. 25

    Angular:为什么CSS证明不能与ng-repeat一起使用?

  26. 26

    为什么路由不能与ElasticSearch Bulk API一起使用?

  27. 27

    为什么Tfidfvectorizer中的token_pattern参数不能与scikit一起使用?

  28. 28

    为什么数据绑定不能与PropertyChanged一起使用?

  29. 29

    为什么我的$ templateCache设置不能与新的Angular路由器一起使用?

热门标签

归档