【发布时间】:2015-04-23 23:31:54
【问题描述】:
所以我有一个将键作为触发器和值作为操作的映射。 Trigger 是一个内部类,它接受两个参数。 Action 也是一个接受三个参数的内部类。我有一个 addTransition 方法,它接受 5 个参数,前两个用于触发,后三个用于操作。在这种方法中,我添加了一个 system.out.println(map);但由于某种原因,它打印出这个:
{meta.TuringMachine$Trigger@7b3d091c=meta.TuringMachine$Action@ec636273}
{meta.TuringMachine$Trigger@7b3d091c=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08fe=meta.TuringMachine$Action@ec636273}
{meta.TuringMachine$Trigger@7b3d091c=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08fe=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d0900=meta.TuringMachine$Action@ec636273}
{meta.TuringMachine$Trigger@7b3d091c=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08ff=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08fe=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d0900=meta.TuringMachine$Action@ec636273}
{meta.TuringMachine$Trigger@7b3d091c=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08ff=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08fe=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d0900=meta.TuringMachine$Action@ec636273}
{meta.TuringMachine$Trigger@7b3d091c=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08ff=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d08fe=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d0900=meta.TuringMachine$Action@ec636273, meta.TuringMachine$Trigger@7b3d0920=meta.TuringMachine$Action@ec636273}
编辑:我的 newBit 似乎不是空的。这也是我向地图添加值的方法:
public void addTransition(int curState, char curBit, int newState, char newBit, int direction){
Trigger trigger = new Trigger(newState, newBit);
Action action = new Action(newState, newBit, direction);
program.put(trigger,action);
System.out.println(program);
}
TuringMachine a = new TuringMachine();
a.addTransition(0,'1',0,'1',1);
由于某种原因,这是打印出来的
{(0, 49)=(0, , 0)}
【问题讨论】:
-
这不是胡言乱语,这是老生常谈
Object#toString()! -
糟糕,以错误的副本关闭...等等...
-
你可以尝试在 Action 和 Trigger 中重写 toString() 方法吗?
-
This 是一个更好的重复问题/答案。请注意,这个问题非常很常见。