0

我想创建一个新变量,我可以使用它执行以下操作:

Variable v1 = 1;
Variable v2 = "Test";
Variable v3 = 7.31;

这是可能的,还是不可能的?

4

2 回答 2

2

如果您利用自动装箱(Java SE 5.0 及更高版本),那么每一个都可以存储在一个Object(即所有 Java 类型的基类)中:

public class foo {
    static public void main(String[] params) {
        Object v1 = 1;
        Object v2 = "Test";
        Object v3 = 7.31;

        System.out.println(v1 + " " + v1.getClass().getName());
        System.out.println(v2 + " " + v2.getClass().getName());
        System.out.println(v3 + " " + v3.getClass().getName());
    }
}

输出:

% java foo
1 java.lang.Integer
Test java.lang.String
7.31 java.lang.Double

不过,这并不一定是个好主意!

上面显示的输出显示了虽然每个变量都被声明Object,但它们的真实类名更适合它们的类型。只是因为Java 中的每个类都派生自Object声明可以这样工作。

于 2012-09-02T13:54:44.503 回答
0

有可能的。检查下面的代码:

    Object a;
    Object b;
    Object c;

    a = 1;
    b = "abc";
    c = 1.72d;

或其他方式:

    Object a;

    a = 1;
    a = "abc";
    a = 1.72d;

在这种情况下,我们观察自动装箱,当一个值被包装成一个合适的对象类型时。

由于Object类是所有 java 对象的父类,所以我们有一种方法来编写如上所述的代码。

于 2012-09-02T13:56:34.693 回答