Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类#可从和取消装箱/装箱中指定 正如我们所知道的,类y>可赋值< /COD>不考虑,一个值可以是自动装箱的。例如,以下四种情况中较低的返回值false: // obvious System.out.println(boolean.class.isAssignableFrom(boolean.class)); // true System.out.println(Boolean.class.isAssignableFrom(Boolean.class)); // true // boxing/unboxing System.out.println(boolean.class.isAssignableFrom(Boolean.class)); // false System.out.println(Boolean.class.isAssignableFrom(boolean.class)); // false 有没有这种方法的预先存在的变体来考虑这种情况?(即,在上述四种给定情况下都返回true)。如果不是,那么对于所有原始/包装的组合,实现这一点的最佳方法是什么?_Java_Reflection_Types - Fatal编程技术网

Java 类#可从和取消装箱/装箱中指定 正如我们所知道的,类y>可赋值< /COD>不考虑,一个值可以是自动装箱的。例如,以下四种情况中较低的返回值false: // obvious System.out.println(boolean.class.isAssignableFrom(boolean.class)); // true System.out.println(Boolean.class.isAssignableFrom(Boolean.class)); // true // boxing/unboxing System.out.println(boolean.class.isAssignableFrom(Boolean.class)); // false System.out.println(Boolean.class.isAssignableFrom(boolean.class)); // false 有没有这种方法的预先存在的变体来考虑这种情况?(即,在上述四种给定情况下都返回true)。如果不是,那么对于所有原始/包装的组合,实现这一点的最佳方法是什么?

Java 类#可从和取消装箱/装箱中指定 正如我们所知道的,类y>可赋值< /COD>不考虑,一个值可以是自动装箱的。例如,以下四种情况中较低的返回值false: // obvious System.out.println(boolean.class.isAssignableFrom(boolean.class)); // true System.out.println(Boolean.class.isAssignableFrom(Boolean.class)); // true // boxing/unboxing System.out.println(boolean.class.isAssignableFrom(Boolean.class)); // false System.out.println(Boolean.class.isAssignableFrom(boolean.class)); // false 有没有这种方法的预先存在的变体来考虑这种情况?(即,在上述四种给定情况下都返回true)。如果不是,那么对于所有原始/包装的组合,实现这一点的最佳方法是什么?,java,reflection,types,Java,Reflection,Types,此方法是关于子类型,而不是是否可以将一个值分配给一个更复杂的变量,请参见我有一个这样的包装映射字段 WRAPPER_MAP.put(boolean.class, Boolean.class); // add others 然后我查这个 public static Class wrap(Class clazz) { Class clazz2 = WRAPPER_MAP.get(clazz); return clazz2 == null ? clazz : clazz2; }

此方法是关于子类型,而不是是否可以将一个值分配给一个更复杂的变量,请参见我有一个这样的包装映射字段

WRAPPER_MAP.put(boolean.class, Boolean.class);
// add others
然后我查这个

public static Class wrap(Class clazz) {
     Class clazz2 = WRAPPER_MAP.get(clazz);
     return clazz2 == null ? clazz : clazz2;
}
那么测试就要开始了

wrap(clazz1).isAssignableFrom(wrap(clazz2));

您的用例是什么?无论如何,您永远无法对
布尔值
调用
getClass()
。@SotiriosDelimanolis他可能能够,boolean.class(或boolean.TYPE)可以使用反射作为类型传递。@arne看来,这些是为
布尔值
获取
对象的唯一方法。因此,我看不到在运行时了解这些信息的有用性。尽管这确实获得了请求的行为,但在我看来,使用
isAssignableFrom
是不合适的,因为它的目的是什么
boolean
不是同一个类或
boolean
的超类。谢谢,这就是我要找的。顺便说一下,我发现ApacheCommons
org.Apache.Commons.lang3.ClassUtils
为此类情况提供了一些有用的方法(
#isAssignable
)@SotiriosDelimanolis我明白,严格来说术语“可分配”可能不正确,但在我的用例中,我需要这种行为。