有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

矢量。add('Y')在java 1.4中是否有效?

在下面的代码中

Vector v = new Vector();
v.add('c');

v.add('c')在1.5中是允许的,我想这可能是因为1.5的自动装箱功能
但我惊讶地看到,在1.4 v.add('c')中,允许字符文本作为add方法的对象类型方法参数

这是否意味着字符文字被视为对象


在这里发帖之前,我在我的Intellij IDE上做了“整数I=1”的交叉检查,IDE在这行上显示了红色的错误符号。但是IDE在v.add('Y')语句中没有这样做。它没有显示任何错误。 不管怎样,现在已经清楚了。v、 add('Y')不在1.4或更旧版本中编译。 谢谢你的意见。我相信有时候去壳牌公司看看会更好。嗯


共 (3) 个答案

  1. # 1 楼答案

    它不会在源代码兼容性设置为1.4的情况下编译:

    javac -source 1.4 VectorTest.java
    VectorTest.java:6: cannot find symbol
    symbol  : method add(char)
    location: class java.util.Vector
            v.add('x');
         ^
    1 error
    
  2. # 2 楼答案

    @beny23和@ataylor已经正确地指出,您并没有真正在Java 1.4中编译,也没有在Java的更高版本中使用正确的标志来执行等效操作

    我只想指出,无论您如何编译,代码都不会在真正的Java 1.4 JVM上运行。自动装箱achar实际上只是调用Character.valueOf(char)的“语法糖”。问题是,在Java 1.4版本的Character中不存在这种方法。根据javadoc,该方法是在Java1.5中添加的

  3. # 3 楼答案

    我不知道你是怎么编译的,但这是不允许的。你确定你已经在1.4版中编译过了吗

    这是我得到的

    $ javac -target 1.4 -source 1.4 X.java
    X.java:4: cannot find symbol
    symbol  : method add(char)
    location: class java.util.Vector
            v.add('Y');
             ^
    1 error