java - ArrayList 对象运行时输入被视为字符串

标签 java arraylist

我正在尝试将对象添加到 ArrayList,在静态输入期间,它工作正常

class ArrayListDemo4
{
    public static void main(String[] args) 
    {
        Collection cl = new ArrayList();
        cl.add(true);cl.add("Hello");cl.add(6.55f);cl.add(566);
        out.println(cl);

        for(Object o: cl)
            System.out.println(o.getClass());
    }
}

输出:

D:\COLLECTIONS>java ArrayListDemo4
[true, Hello, 6.55, 566]
class java.lang.Boolean
class java.lang.String
class java.lang.Float
class java.lang.Integer

当我尝试对运行时输入执行相同操作时,getClass() 仅以字符串形式给出。我注意到 next() 有 2 个具有不同返回类型的签名 public java.lang.String next()、public java.lang.Object next() 和通用控制台输入对象

class ArrayListDemo3 
{
    public static void main(String[] args) 
    {
        Scanner  input = new Scanner(in);
        List cl = new ArrayList(4);

        out.println("Enter the objects to the ArrayList:");
        for (int i =0; i < 4; i++ )
        {out.print("cl["+i+"]   =  ");  cl.add((Object)input.next());   }
        out.println(cl);

        for(Object o: cl)
        {out.println(o.getClass());}
    }
}

输出:

Enter the objects to the ArrayList:
cl[0]   =  true
cl[1]   =  Hello
cl[2]   =  6.55f
cl[3]   =  566
[true, Hello, 6.55f, 566]
class java.lang.String
class java.lang.String
class java.lang.String
class java.lang.String

有人可以纠正/帮助我 - 如何获取运行时输入值的相应对象类型?

最佳答案

咨询java.util.Scanner javadoc,你会发现next()始终返回String

同时java.util.Scanner有很多方法来获取特定类型的值:nextBoolean() , nextByte()

此外,我强烈建议:不要使用原始类型的集合。 Java有相当好的泛型机制。所以,如果您正在学习过程中 - here是很好的入门资源。

关于java - ArrayList 对象运行时输入被视为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54750463/

相关文章:

java - 如何在一个属性不同的两个数组列表中找到普通员工?

java - 泛型 List<String> 和 List<Integer> 未按预期运行

java - 给定空列表,然后添加 String (ArrayList 实现)

c# - 在 C# 中,哪个包含装箱和拆箱策略,数组还是数组列表?

java - 有什么方法可以删除 Eclipse [for Java] 中的尾随空格 *FOR EDITED* 行?

java - ArrayList 与 HashSet 的性能对比

java - Android apk 无法使用 PHP 检索超过 3g 的数据,在 wifi 上工作正常

java - Checkstyle 能否验证字符串值等于类或文件名?

Java if 语句

java - 我在 Android Studio 文件夹中看不到 Extras 文件夹