gpt4 book ai didi

java - 检查原始字段的类型

转载 作者:IT老高 更新时间:2023-10-28 20:44:31 29 4
gpt4 key购买 nike

我正在尝试确定对象上字段的类型。我不知道传递给我的对象的类型,但我需要找到 long 的字段。区分盒装 Long 很容易,但原始 long 似乎更难。

可以确保传递给我的对象只有Longs,而不是原语,但我宁愿没有。所以我有的是:

for (Field f : o.getClass().getDeclaredFields()) {
Class<?> clazz = f.getType();
if (clazz.equals(Long.class)) {
// found one -- I don't get here for primitive longs
}
}

似乎可行的一种hacky方法是:

for (Field f : o.getClass().getDeclaredFields()) {
Class<?> clazz = f.getType();
if (clazz.equals(Long.class) || clazz.getName().equals("long")) {
// found one
}
}

如果有的话,我真的很想要一种更清洁的方法来做到这一点。如果没有更好的方法,那么我认为要求我收到的对象只使用 Long(而不是 long)会是一个更好的 API。

有什么想法吗?

最佳答案

您使用了错误的常量来检查 Long 原语 - 使用 Long.TYPE,可以在包装器上使用类似命名的常量找到其他原语类型。 eg:Byte.TYPECharacter.TYPE

关于java - 检查原始字段的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891595/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com