如何查看给定参数的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 ?
}
答案 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是一种静态语言,因此开发人员应该知道它的数据类型
答案 3 :(得分:0)
原始数据类型不会扩展Object,因此您无法使用参数1调用此方法。