如何检测原始数据类型?

时间:2014-03-26 10:39:10

标签: java primitive-types

如何查看给定参数的Primitive Data Type

public static void main(String[] args) {
    if (isPrimitive("test")) {
        System.out.println("True");
    }
    if (isPrimitive(1)) {
        System.out.println("True");
    }
}

public static boolean isPrimitive(Object o) {
    // Here what would I do ?
}

4 个答案:

答案 0 :(得分:1)

您可以制作一些接受不同类型参数的重载方法。你可以创建一些只接受原始包装器的东西,一个接受一个String,另一个接受一个Object。对于接受String的那个,您可以使用不同类型的原始包装类来测试parseXXX()方法是否正常工作。接受Object作为参数的方法将始终返回false,因为重载的方法应该涵盖所有基元类型。

答案 1 :(得分:1)

你不能通过参数Object o的方法知道,因为如果你传递int, char, boolean它们将被自动装箱到包装类,在你永远不会知道它是自动装箱原语或者包装类(Integer, Long, Boolean...)

答案 2 :(得分:1)

当您致电isPrimitive(1)时,将会执行auto-boxing。 这意味着isPrimitive(Object o)获取一个Integer,而不是int。 在这种方法中,不可能知道参数是否是原始数据类型。 更重要的是,Java是一种静态语言,因此开发人员应该知道它的数据类型

参考:Java7 Auto Boxing

答案 3 :(得分:0)

原始数据类型不会扩展Object,因此您无法使用参数1调用此方法。