我正在
systemB\Plumber.java:44: error: cannot find symbol
FilterOut.Connect(FilterWildPoints.pipe1);
^
symbol: variable pipe1
location: variable FilterWildPoints of type MiddleFilter
systemB\Plumber.java:56: error: cannot find symbol
FilterWildPoints.pipe1.start();
^
symbol: variable pipe1
location: variable FilterWildPoints of type MiddleFilter
2 errors
即使您,FilterWildPoints都有一个公共成员变量pipe1。
一个好主意是让“狂点过滤器”将流分成另外两个管道,并将其中一个管道连接到输出。
Plumber.java:
package systemB;
public class Plumber
{
public static void main( String argv[])
{
SourceFilter FilterIn = new SourceFilter("./datasets/FlightData.dat");
MiddleFilter FilterTemperature = new MiddleFilterTemperature();
MiddleFilter FilterAltitude = new MiddleFilterAltitude();
MiddleFilter FilterWildPoints = new MiddleFilterWildPoints();
SinkFilter FilterOut = new SinkFilter("./OutputB.dat");
FilterOut.Connect(FilterWildPoints.pipe1);
FilterWildPoints.Connect(FilterAltitude);
FilterAltitude.Connect(FilterTemperature);
FilterTemperature.Connect(FilterIn);
FilterIn.start();
FilterTemperature.start();
FilterAltitude.start();
FilterWildPoints.pipe1.start();
FilterOut.start();
} // main
} // Plumber
MiddleFilterWildPoints.java:
package systemB;
import java.nio.ByteBuffer;
public class MiddleFilterWildPoints extends MiddleFilter
{
public MiddleFilter pipe1;
public MiddleFilter pipe2;
MiddleFilterWildPoints()
{
this.pipe1 = new MiddleFilter();
this.pipe2 = new MiddleFilter();
}
//...
} // MiddleFilter
我对Java不太熟悉,需要此代码进行作业,但找不到错误。
答案 0 :(得分:2)
您已将FilterWildPoints
声明为MiddleFilter
,其中没有pipe1
字段。
相反,声明类型为FilterWildPoints
的{{1}}:
MiddleFilterWildPoints
java编译器仅查看声明的类型。
最好遵循变量名的标准Java命名约定,以小写字母开头。即
MiddleFilterWildPoints FilterWildPoints = new MiddleFilterWildPoints();
这样,可以更轻松地区分类名和变量名。
答案 1 :(得分:0)
您必须实例化对象MiddleFilter。这些实例将具有自己的属性。在您尝试使用名为Pipe1的MiddleFilter类中的静态字段。 (静态在同一类的所有实例中都是相同的)。 要解决此问题,请创建MiddleFilter middle = new MiddleFilter,然后使用middle.pipe。