有没有一种方法来检查instanceof基本变量java

马汀

我们可以知道对象引用是-通过使用instanceof运算符进行的测试。但是是否有任何运算符可以检查基本类型。例如:

byte b = 10;

现在,如果我仅考虑价值10我有什么办法可以发现它被声明为字节?

亚当

局部变量

假设您是用局部变量来表示的,则当作为对象传递时,原语将始终按其包装器类型自动包装,在这种情况下为java.lang.Byte。使用反射引用局部变量是不可能的,因此您无法区分Byte和byte或Integer和int等。

Object bytePrimitive = (byte) 10;

System.out.println("is a Byte ?   " + (bytePrimitive instanceof Byte));
System.out.println("Check class = " + (bytePrimitive.getClass()));

// false because class in this case becomes Byte, not byte.
System.out.println("Primitive = " + (bytePrimitive .getClass().isPrimitive()));

领域

但是,如果您谈论的是类中的字段,则情况有所不同,因为您可以获取实际声明的类型的句柄。然后,可以按预期使用java.lang.Class.isPrimitive(),类型为byte.class。

public class PrimitiveMadness {
    static byte bytePrimitiveField;
    static Byte byteWrapperField;

    public static void main(String[] args) throws Exception {
        System.out.println("Field type  =     " + PrimitiveMadness.class.getDeclaredField("bytePrimitiveField").getType());
        System.out.println("Is a byte   =     " + (PrimitiveMadness.class.getDeclaredField("bytePrimitiveField").getType() == byte.class));
        System.out.println("Is a primitive? = " + PrimitiveMadness.class.getDeclaredField("bytePrimitiveField").getType().isPrimitive());
        System.out.println("Wrapper field   = " + PrimitiveMadness.class.getDeclaredField("byteWrapperField").getType());
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法来检查jOOQ查询绑定值?

来自分类Dev

有没有一种方法来检查QJsonObject对象是否包含特定属性?

来自分类Dev

有没有一种方法来#if Objective-C ++?

来自分类Dev

有没有一种方法来.slice()从JQuery .load()返回的响应

来自分类Dev

有没有一种方法来追溯调试的执行?

来自分类Dev

有没有一种方法来获取特定列上的日期差

来自分类Dev

有没有一种方法来#if Objective-C ++?

来自分类Dev

有没有一种方法来“查看代码”的MS Access文件?

来自分类Dev

有没有一种方法来获取多个列表python的索引?

来自分类Dev

有没有一种方法来保存gnome-shell会话?

来自分类Dev

有没有一种方法来获取函数参数的类型?

来自分类Dev

有没有一种方法来隐藏在科特林Java方法?

来自分类Dev

有没有一种优雅的方法来检查是否设置了一组环境变量?

来自分类Dev

有没有一种方法来lint以PMD,Checkstyle的,SpotBugs等不兼容的Java API参考?

来自分类Dev

有没有一种简短的方法来检查 R 中每个变量的不等价性?

来自分类Dev

有没有一种更快的方法来检查数字是否在间隔内?

来自分类Dev

有没有一种更快的方法来在atom中执行拼写检查?

来自分类Dev

有没有一种优雅的方法来检查多个条件?

来自分类Dev

有没有一种更快的方法来检查文件是否正在使用?

来自分类Dev

有没有一种方法来检查结构体具有字段并检查其类型?

来自分类Dev

有没有一种通用的方法来打印变量?

来自分类Dev

有没有一种方法可以使用rss / atom或其他类似方法来检查特定npm软件包的更新?

来自分类Dev

有没有一种方法可以在Java中创建一个方法来获取有关单击了什么JPanel的信息/信息?

来自分类Dev

有没有一种方法来检查字符串是否为erlang中的字母数字

来自分类Dev

有没有一种方法来检测某个元素是否被jQuery的click()单击?

来自分类Dev

有没有一种方法来定义每个项目的键绑定?

来自分类Dev

有没有一种方法来获取tmux窗格的活动窗格ID

来自分类Dev

有没有一种方法来获取位图的URI而不将其保存到sdcard?

来自分类Dev

有没有一种方法来获取音频文件的长度Python Pyglet

Related 相关文章

  1. 1

    有没有一种方法来检查jOOQ查询绑定值?

  2. 2

    有没有一种方法来检查QJsonObject对象是否包含特定属性?

  3. 3

    有没有一种方法来#if Objective-C ++?

  4. 4

    有没有一种方法来.slice()从JQuery .load()返回的响应

  5. 5

    有没有一种方法来追溯调试的执行?

  6. 6

    有没有一种方法来获取特定列上的日期差

  7. 7

    有没有一种方法来#if Objective-C ++?

  8. 8

    有没有一种方法来“查看代码”的MS Access文件?

  9. 9

    有没有一种方法来获取多个列表python的索引?

  10. 10

    有没有一种方法来保存gnome-shell会话?

  11. 11

    有没有一种方法来获取函数参数的类型?

  12. 12

    有没有一种方法来隐藏在科特林Java方法?

  13. 13

    有没有一种优雅的方法来检查是否设置了一组环境变量?

  14. 14

    有没有一种方法来lint以PMD,Checkstyle的,SpotBugs等不兼容的Java API参考?

  15. 15

    有没有一种简短的方法来检查 R 中每个变量的不等价性?

  16. 16

    有没有一种更快的方法来检查数字是否在间隔内?

  17. 17

    有没有一种更快的方法来在atom中执行拼写检查?

  18. 18

    有没有一种优雅的方法来检查多个条件?

  19. 19

    有没有一种更快的方法来检查文件是否正在使用?

  20. 20

    有没有一种方法来检查结构体具有字段并检查其类型?

  21. 21

    有没有一种通用的方法来打印变量?

  22. 22

    有没有一种方法可以使用rss / atom或其他类似方法来检查特定npm软件包的更新?

  23. 23

    有没有一种方法可以在Java中创建一个方法来获取有关单击了什么JPanel的信息/信息?

  24. 24

    有没有一种方法来检查字符串是否为erlang中的字母数字

  25. 25

    有没有一种方法来检测某个元素是否被jQuery的click()单击?

  26. 26

    有没有一种方法来定义每个项目的键绑定?

  27. 27

    有没有一种方法来获取tmux窗格的活动窗格ID

  28. 28

    有没有一种方法来获取位图的URI而不将其保存到sdcard?

  29. 29

    有没有一种方法来获取音频文件的长度Python Pyglet

热门标签

归档