我想创建一个新变量,我可以用它来完成以下操作:
Variable v1 = 1;
Variable v2 = "Test";
Variable v3 = 7.31;
这是可能的,还是这不可能?
答案 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对象的父类,因此我们可以像上面描述的那样编写代码。