java - for-each 语法转换

标签 java

谁能告诉我这是怎么回事?在我看来,myObj 正在转换为 String[],因此可以在 for 循环中对其进行迭代。但它是作为 new String[] 构造的——为什么需要转换它?

public static void main(String args[]) {
  Object myObj = new String[]{"one", "two", "three"};
  for (String s : (String[])myObj) {
      System.out.print(s + ".");
  }
}

谢谢!

最佳答案

创建为 String[] 并不重要;你只有一个 Object 引用它。这与 for-each 无关;以下也不会编译:

Object myObj = new String[]{"one", "two", "three"};
System.out.println(myObj.length);  // There is no Object.length

关于java - for-each 语法转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8114542/

相关文章:

java - 实体表不是使用 JPA 2.1 创建的

java - 为什么我的 WAR 文件在 Tomcat 中会自动爆炸?

java - Quartz 调度程序 - 使用同一类的不同作业?

java - Java 编码的更改需要每次重新启动 Tomcat

java - 如何通过java使用appium和selenium处理webview

Java MySQL事务和executeBatch

java - 如何在oracle10g数据库中选择名称?

java - 寻找HashMap中最接近但不小于的值

Java AES 字符串解密 "given final block not properly padded"

java - Google App Engine/Java SDK 在哪里存储记录和 blob?