如何从Java中声明的类中获取Primitive的类型?

时间:2016-05-01 18:38:44

标签: java

我不确定我的标题是否完全描述了我想说的内容 - 但这就是我要做的事情:

我有这个班级数字:

public class Numbers{

    private int Integers;
    private float Floaters;

    public Numbers(String xUserInput){

        if (xUserInput.matches("[0-9]+")) {

            System.out.println("Integer");
            try{
                this.setIntegers(Integer.parseInt(xUserInput));
            } catch (NumberFormatException e) {
                System.out.println(xUserInput + " is not of Integer type!");
            }

        } else if (xUserInput.matches("[0-9]*[.]{1}[0-9]+")) {

            System.out.println("Float");
            try{
                this.setFloaters(Float.parseFloat(xUserInput));
            } catch (NumberFormatException e) {
                System.out.println(xUserInput + " is not of Float type!");
            }

        } else {

            System.out.println("Invalid Input!");
        }
    }

    public int getIntegers() {
        return this.Integers;
    }

    public void setIntegers(int integers) {
        this.Integers = integers;
    }

    public float getFloaters() {
        return this.Floaters;
    }

    public void setFloaters(float floaters) {
        this.Floaters = floaters;
    }

现在,在main中 - 我在ArrayList中添加所有用户输入 - 但是我想要打印数组两次,一次是全部整数,然后是所有浮动。

我如何获得原始类型?请告诉我哪里出错了。

PS:我试过了

for(Numbers n : numberList) {

        System.out.println(n.getClass().getSimpleName());
    }

...但我得到的只是“数字。”

1 个答案:

答案 0 :(得分:0)

您始终在循环中显示类名。我想你想要的是:

// first loop
for(Numbers n : numberList) {
    System.out.println(n.getIntegers());
}

// second loop
for(Numbers n : numberList) {
    System.out.println(n.getFloaters());
}