【问题标题】:Java datatype for datatypes数据类型的 Java 数据类型
【发布时间】:2020-01-27 01:05:31
【问题描述】:

我想将数据类型传递给方法,但我似乎找不到数据类型的数据类型,我不知道该怎么做

所以当我提到数据类型时,我指的是声明变量之前的部分,例如:int myNumber;

我想传递类型,因此该方法可以采用 string 或 int 并将其识别为数据类型而不是字符串,而不是为每个原始数据类型使用 switch case

我将使用该方法继续验证输入,而不是尝试,除了

基本上,我问的是下面的下划线是什么:

_____ variable1 = String;

variable1 variable2 = “Words”;

如果有办法使用扫描器获取通用输入而不是指定数据类型,或者使用 variable1 指定数据类型

【问题讨论】:

    标签: java variables types


    【解决方案1】:

    我怀疑你想要反射类型:
    java.lang.reflect.Type 您可以通过以下方式使用它:

    Type type = Integer.class;
    

    或在方法签名中,例如:

      public void test(Type type) {
    

    你可以这样称呼它:

    test(Integer.class)
    

    为此,您需要使用非原始类,因此对于 int,您将使用 Integer 类。字符串很好,因为那不是原始的。
    如果需要检查变量实例是否属于特定类型,可以使用instanceof 关键字,如下所示:

        if (type == String.class && parameterVariable instanceof String) {
          stringField = parameterVariable;
        }
    

    (您可能已将parameterVariable 作为对象传递给方法,因此它可以是整数或字符串等)。 不幸的是,我认为您建议的声明模式在 java 中不受支持(很高兴得到纠正)。

    【讨论】:

    • 我怀疑有比反射更好的方法来做到这一点。我想到了泛型、委托和包装类。但如果不进一步了解 Llione 真正想要实现的目标,就很难说。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2012-05-11
    • 2016-06-28
    • 2019-03-20
    • 2010-11-01
    • 2019-03-12
    相关资源
    最近更新 更多