【发布时间】:2019-08-19 04:12:51
【问题描述】:
很抱歉这个不清楚的问题,但我真的迷失了为什么我们首先需要isPrimitive(),因为我无法使用它(对不起,我只是在需要的时候无法使用它;(这里是悲伤的脸)。
在这里和那里阅读帖子后,我发现了一些用法
int.class.isPrimitive()
但是我想要一些东西
boolean isTrue = true;
System.out.println(isTrue.class.isPrimitive());
System.out.println(Boolean.valueOf(isTrue).getClass().isPrimitive());
我试图在遍历对象的字段时检查类型;我现在能做的就是
private static boolean isPrimitiveWrapper(Object obj) {
return obj.getClass() == Boolean.class ||
obj.getClass() == Byte.class ||
obj.getClass() == Character.class ||
obj.getClass() == Short.class ||
obj.getClass() == Integer.class ||
obj.getClass() == Long.class ||
obj.getClass() == Float.class ||
obj.getClass() == Double.class;
}
但是看了一圈,我觉得应该有问题,但我不知道是什么问题。
任何用例都将不胜感激;)
我尽量不要太偏执...已经很努力了
【问题讨论】:
-
在使用反射api时可能有用
-
我现在实际上正在使用反射来进行遍历,但它的使用似乎过于严格,我对此感到很困惑。
-
目前还不清楚您要实现什么。您正在使用 object 的类,它永远不会是原始类型 - 但如果您要使用 字段的类型,它很容易成为原始类型。
-
我正在尝试使用反射来遍历一个类中的所有字段,只要它是一个可打印的值(私有字段和继承的所有字段甚至包括超父类对象),我都会打印出来。对象详细信息转储器/打印机的种类。
-
这解释了为什么该方法存在。当你使用它时会发生什么?为什么你不能使用它? Class#isPrimative() 编辑:答案已经是所有这些帖子的答案。您必须结合包装检查、常规检查和字符串检查。
标签: java java-8 primitive-types