有时还挺羡慕其它语言的,比如 Python 或 PHP 。为什么羡慕呢? 因为这些语言没有显式的所谓的数据类型,只要创建一个变量,然后把值丢给它就可以了。
但是 Java 不行,Java 在创建变量时必须明确指明数据类型。因为 Java 中的一个变量的类型在编译时就必须确定下来的。
但我们也不用灰心,哈哈,每个语言都有自己的好,Java 中其实也是可以模仿这一点的,你能猜到用的是什么方法吗?
也许你已经想到了,就是使用 java.lang.Object
类来创建一个变量。
我们先来看一段代码
JavaTester.java
class JavaTester { public static void main(String args[]) { Object y; y = 'A'; System.out.println(y.getClass().getName()); y = 1; System.out.println(y.getClass().getName()); y = "Hi"; System.out.println(y.getClass().getName()); y = 1.222; System.out.println(y.getClass().getName()); y = false; System.out.println(y.getClass().getName()); } }
编译运行上面的代码,输出结果如下
[yufei@www.twle.cn java]$ javac JavaTester.java && java JavaTester java.lang.Character java.lang.Integer java.lang.String java.lang.Double java.lang.Boolean
是不是很有意思,Java 中能这么做的原因是: java.lang.Object
类是所有其它类的超类。
Object
类型的引用变量实际上可用于引用任何类的对象。这也是我们经常在 Java 代码中看到 y = new InputStreamReader(System.in)
的原因。
目前尚无回复