所以我找不到一个已经可以回答我确切问题的问题。我有一个用eclipse编写的软件包,我将其导出为jar库,以便在处理过程中使用。在处理中,我有一个草图,该草图具有一个类,该类调用包中的类。当我尝试编译时,出现此错误:

Pirate(processing.core.PApplet,java.lang.String,processing.core.PVector,float,float,int,int) is not public in fsg.pvzclone.pirateunits.Pirate; cannot be accessed from outside package
[javac]   fsg.pvzclone.pirateunits.Pirate pirate1 = new fsg.pvzclone.pirateunits.Pirate(this, "Pirate", pinPoint, pWidth, pHeight, 1, 1).displayPirate();

有谁知道我为什么不能上课?我将类和构造函数都设置为public,所以我不确定为什么无法访问该类。任何帮助将不胜感激。

建设者代码:
package fsg.pvzclone.pirateunits;

import processing.core.*;

public class Pirate {
   public String pirateClass;
    int classId;
    PVector pinPoint;
    float width;
    float height;
    int id;
    PApplet parent;

    public Pirate(processing.core.PApplet _parent, String _pirateClass, PVector _pinPoint,
        float _width, float _height, int _classId, int _id) {
        parent = _parent;
        pirateClass = _pirateClass;
        classId = _classId;
        width = _width;
        height = _height;
        pinPoint = _pinPoint;
        id = _id;
    }

    public void displayPirate() {
        parent.fill(13, 183, 20, 255);
        parent.stroke(7, 59, 9, 255);
        parent.rect(this.pinPoint.x-this.width/2, (float)(this.pinPoint.y-this.height*.75), this.width, this.height);
    }

}

代码调用海盗类:
fsg.pvzclone.pirateunits.Pirate pirate1 = new fsg.pvzclone.pirateunits.Pirate(this, "Pirate", pinPoint, pWidth, pHeight, 1, 1).displayPirate();

最佳答案

如果Pirate类为1:1(如所示),则我怀疑您的classpath中有旧版本。仔细检查类路径以获取旧版本的.java和.class。

07-26 04:08