相关疑难解决方法(0)

确定对象是否是基本类型

我有一个Object[]数组,我试图找到原始的数组.我试过用Class.isPrimitive(),但似乎我做错了什么:

int i = 3;
Object o = i;

System.out.println(o.getClass().getName() + ", " +
                   o.getClass().isPrimitive());
Run Code Online (Sandbox Code Playgroud)

打印java.lang.Integer, false.

有正确的方法或替代方案吗?

java reflection

109
推荐指数
9
解决办法
11万
查看次数

为什么我们首先需要isPrimitive()?

抱歉,这个不清楚的问题,但是我真的迷失了为什么我们isPrimitive()首先需要它,因为我不能使用它(对不起,我只是在需要时才不能使用它;(可悲的是在这里)。

在到处阅读文章后,我发现一些用法

int.class.isPrimitive()
Run Code Online (Sandbox Code Playgroud)

但我想吃点东西

boolean isTrue = true;
System.out.println(isTrue.class.isPrimitive());
System.out.println(Boolean.valueOf(isTrue).getClass().isPrimitive());
Run Code Online (Sandbox Code Playgroud)

我试图遍历对象的字段时检查类型;我现在能做的是

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;
}
Run Code Online (Sandbox Code Playgroud)

但是在检查之后,我认为应该有问题,但是我不知道这是什么。

任何用例将不胜感激;)

我正在尝试不要太偏执...已经很努力了

java primitive-types java-8

3
推荐指数
1
解决办法
89
查看次数

标签 统计

java ×2

java-8 ×1

primitive-types ×1

reflection ×1