加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java向后兼容性说明

发布时间:2020-12-15 04:15:57 所属栏目:Java 来源:网络整理
导读:我有一个 java类文件.我用JVM 7编译.我实现了java 1.7添加,比如String switchcase,diamond operator.现在我想在java 1.6 JRE上运行这个.class文件.它会运行吗? 一个简单的程序使用字符串开关我正在卸载6.请尝试一下,给我答案 import java.util.Scanner; pub
我有一个 java类文件.我用JVM 7编译.我实现了java 1.7添加,比如String switchcase,diamond operator.现在我想在java 1.6 JRE上运行这个.class文件.它会运行吗?

一个简单的程序使用字符串开关我正在卸载6.请尝试一下,给我答案

import java.util.Scanner;


  public class Classing 
 {

public static void main(String[] args) 
{


    System.out.println("Enter a month to know who you are");
    System.out.println("Jan n Feb n Mar n Apr");

    Scanner scan=new Scanner(System.in);

    String name=scan.nextLine();

    System.out.println(fortune(name.toLowerCase()));

}

public static String fortune(String s)
{


    switch(s)
    {

    case "jan":

        return "Good guy";

   case "feb":

        return "Nice guy";

   case "mar":

      return "Brave guy";

      case "apr":

      return "Super guy";


    }

    return " Month out of option"+s;
}

}

解决方法

根据 http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#binary,即使这个问题有一个公认的答案

The class file version for Java SE 7 is 51,as per the JVM Specification,because of the invokedynamic byte code introduced by JSR 292. Version 51 class files produced by the Java SE 7 compiler cannot be used in Java SE 6.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读