【问题标题】:Taking user input and assigning it to object接受用户输入并将其分配给对象
【发布时间】:2014-11-21 01:03:01
【问题描述】:

我正在使用扫描仪获取用户输入并将其分配给一个对象。我知道字符串是对象类的扩展,所以它应该是一个简单的赋值。这是我尝试过的。

string name = s.nextLine();// or s.next();
object obj = name;// or JOSN.parse(name);

这是我的代码。我放了一个数组列表而不是另一个数组列表。

        trans = new List<Transition>(nos);

        for (i = 0; i < 5; i++) {
            List<Transition>innerList = trans.get(i);
            for (j = 0; j < 5; j++){
                String state = s.next();
                Transition reg = innerList.get(j).add(state);
         }}

我得到的错误是“类型不匹配无法将类型字符串转换为转换”,但转换只是一个对象。

【问题讨论】:

  • 再贴一些代码,什么是innerList
  • 我更新了我的问题

标签: java string object


【解决方案1】:
         OBJECT
       /        \
  Transition   String

这就是层次结构的样子。

Transition is a subclass of Object,就像String is a subclass of Object一样。

如果两个类在同一个层次链中,则子类的实例可以安全地转换为超类的实例。在这种情况下,Transition and String 不在同一个链中。

请参阅here 了解更多信息。我基本上只为你问了问题并被否决了。 :)

【讨论】:

  • @请看答案
【解决方案2】:

当我们进行强制转换时,必须有 IS-A 关系。表示,String IS-A ObjectTransition IS-A Object

但是当我们尝试在 String 和 Transition 上建立关系时,我们看到 Transition NOT(IS-A) String

这会给你带来铸造问题,我们必须记住,每当我们尝试任何铸造时,它必须在层次结构中,与另一个有 IS-A 关系

【讨论】: