gpt4 book ai didi

java - 将一系列信号送入电线

转载 作者:行者123 更新时间:2023-12-02 04:48:45 25 4
gpt4 key购买 nike

我得到了private List<Wire> inputs和一个方法public void feed(List<Signal> inSigs) 。我必须更改 List<Wire> inputs 中的信号(最初每个信号都是 ==Signal.X)与 inSigs方法的参数中给出 feed() 。这就是我一直遇到的麻烦。如何通过传递 inSigs 更改列表输入的状态(注意:参数的类型为 <Signal> )?我已经完成了一些工作,但在 setSignal(x) 下不断出现并下划线错误。我附加了两个类(class)(下面的 GateWire)

import java.util.*;

public abstract class Gate implements Logic {

private List<Wire> inputs;
private Wire output;
private String name;

public Gate(String name, List<Wire> ins, Wire out)
{
this.name = name;
this.output = out;

if(ins.size() == 0 || ins.isEmpty())
throw new ExceptionLogicParameters(false, 1, 0);
else
this.inputs = ins;
}

@Override
public void feed(List<Signal> inSigs)
{

for(Signal x: inSigs)
inputs.setSignal(x);
}

@Override
public void feed(String name)
{
((Wire) inputs).setName(name);
}

}

public class Wire {

private Signal signal;
private String name;

public Wire(String name)
{
this.name = name;
this.signal = Signal.X;
}

@Override
public String toString()
{
return "\""+ this.name+":"+this.signal+"\"";
}

@Override
public boolean equals(Object other)
{
if(other instanceof Wire)
{
Wire leftHandside = (Wire)other;
return this.name.equals(leftHandside.name) && this.signal == leftHandside.signal;
}
else
return false;
}

public Signal getSignal()
{
return this.signal;
}

public String getString()
{
return this.name;
}

public void setSignal(Signal signal)
{
this.signal = signal;
}

public void setName(String name)
{
this.name = name;
}

}

最佳答案

您的代码和问题的阅读方式存在很多歧义。

我假设信号列表与您的私有(private)电线列表大小相同,然后:

public void feed(List<Signal> inSigs) {
// Needs precondition that inSigs.size() == input.size()
for (int i = 0; i < inSigs.size(); i++) {
inputs.get(i).setSignal(inSigs.get(i));
}
}

否则,您需要一种将信号映射到电线的方法(可能通过索引)。

关于java - 将一系列信号送入电线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29443581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com