我正在尝试将对象添加到 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.Booleanclass java.lang.Stringclass java.lang.Floatclass java.lang.Integer当我尝试对运行时输入执行相同操作时,getClass() 仅作为字符串给出。我注意到next()有 2 个具有不同返回类型的签名public java.lang.String next(), public java.lang.Object next()和对 Object 的通用控制台输入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] = truecl[1] = Hellocl[2] = 6.55fcl[3] = 566[true, Hello, 6.55f, 566]class java.lang.Stringclass java.lang.Stringclass java.lang.Stringclass java.lang.String有人可以纠正/帮助我 - 我如何获得运行时输入值的相应对象类型?
1 回答

凤凰求蛊
TA贡献1825条经验 获得超4个赞
查阅java.util.Scanner
javadoc,你会发现next()
总是返回String
.
同时java.util.Scanner
有很多方法可以获取特定类型的值:nextBoolean()
, nextByte()
, 等。
另外,我强烈建议:不要使用原始类型的集合。Java 有很好的泛型机制。因此,如果您正在学习 -这是一个很好的开始资源。
添加回答
举报
0/150
提交
取消