为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿波罗的战车 2022-06-23 17:52:04
我正在尝试将对象添加到 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.Scannerjavadoc,你会发现next()总是返回String.

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

另外,我强烈建议:不要使用原始类型的集合。Java 有很好的泛型机制。因此,如果您正在学习 -是一个很好的开始资源。


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号