是否有可能制作一种可能是不同的新变量?

时间:2012-09-02 13:51:46

标签: java variables

我想创建一个新变量,我可以用它来完成以下操作:

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

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

2 个答案:

答案 0 :(得分: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派生出来的,声明可以这样工作。

答案 1 :(得分:0)

有可能。检查以下代码:

    Object a;
    Object b;
    Object c;

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

或其他方式:

    Object a;

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

在这种情况下,当值被包装到合适的对象类型时,我们会观察autoboxing

由于Object类是所有java对象的父类,因此我们可以像上面描述的那样编写代码。