我想创建一个新变量,我可以使用它执行以下操作:
Variable v1 = 1;
Variable v2 = "Test";
Variable v3 = 7.31;
这是可能的,还是不可能的?
如果您利用自动装箱(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
声明可以这样工作。
有可能的。检查下面的代码:
Object a;
Object b;
Object c;
a = 1;
b = "abc";
c = 1.72d;
或其他方式:
Object a;
a = 1;
a = "abc";
a = 1.72d;
在这种情况下,我们观察自动装箱,当一个值被包装成一个合适的对象类型时。
由于Object
类是所有 java 对象的父类,所以我们有一种方法来编写如上所述的代码。