相关疑难解决方法(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万
查看次数

如何获取Java类引用的初始化值

我有一个Class<?>任意类型的参考.如何获得该类型的初始化值?是否有一些库方法或我必须自己滚动,如:

Class<?> klass = ...
Object init = 
    (klass == boolean.class)
  ? false
  : (klass == byte.class)
  ? (byte) 0
  ...
  : (Object) null;
Run Code Online (Sandbox Code Playgroud)

用例是我有一个任意java.lang.reflect.Method引用,我想用任意参数调用(对于某些测试),这可能不是null在参数是基本类型的情况下,所以我需要指定该类型的某个值.

java reflection initialization default-value

12
推荐指数
2
解决办法
396
查看次数

如何在Java中测试对象是原始类型还是原始类型数组?

这里是我想要实现的函数签名.

public boolean isBaseTypeOrArray(Object obj){~}
Run Code Online (Sandbox Code Playgroud)

只有当obj属于以下类型之一时,我才想返回true.

boolean or boolean[]
byte or byte[]
short or short[]
int or int[]
long or long[]
float or float[]
double or double[]
char or char[]
java.lang.String or String[]
Run Code Online (Sandbox Code Playgroud)

对于一个单独的值检查它是否是其中一个包装类(Integer,Float,...)的实例或String应该工作因为自动装箱,但我不知道如何检查数组的情况.有任何想法吗?

java

2
推荐指数
1
解决办法
7623
查看次数

标签 统计

java ×3

reflection ×2

default-value ×1

initialization ×1