Java 10中原始类型的泛型类型?

时间:2018-10-10 08:31:56

标签: java

如何在以下代码中将通用类型“ t”转换为Integer?

Integer.parseInt(String.valueOf(t))比显式强制转换(Integer)t好吗?

Java 10具备了吗?

import java.lang.System;

class A {
    public void setString(String s) {
        s += ", World!";
        System.out.println ("setString:" + s);
    }

    public void setInt(Integer i) {
        i *= 100;
        System.out.println ("setInt:" + i);
    }
    
    public <T> void Method(T t)
    {    if (t.getClass().getName() == "java.lang.String")  {
             setString(String.valueOf(t));
         }
         else if(t.getClass().getName() == "java.lang.Integer") {
            setInt (Integer.parseInt(String.valueOf(t) ));
         }
         System.out.println (t.getClass().getName());
    }
}

2 个答案:

答案 0 :(得分:0)

Is (Integer.parseInt(String.valueOf(t)) better than explicit cast (Integer)t 

不。这是不必要的复杂操作,而强制转换是必须的方法(此行将Integer转换为String,然后将String转换为int。这与仅转换为Integer相比没有优势)。

此外,对运算符instanceof的使用要比使用getClass()。getName()更好

答案 1 :(得分:0)

您转换值的方法如下:

[['element_I', 'element_have', 'element_something', 'element_to'], ['element_I', 'element_have', 'element_something', 'element_buy'], ['element_I', 'element_have', 'element_to', 'element_buy'], ['element_I', 'element_something', 'element_to', 'element_buy'], ['element_have', 'element_something', 'element_to', 'element_buy']]

它是这样的:Integer> String> Integer。

由@ andy-turner提出,用instanceOf进行检查更为简单。如果您的类是X类型,则可以进行简单的转换,而无需任何其他方法。

第二个代码看起来更简洁:

  Integet t = 2;
  Integer newValue = Integer.parseInt(String.valueOf(t));