java - 外部包无法访问类构造函数

标签 java class permissions package processing

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

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 类中创建公共(public)默认构造函数并尝试调用它:

public class Pirate{
 public Pirate () {}

  ....
}

调用代码:

fsg.pvzclone.pirateunits.Pirate emptyPirate1 =  new fsg.pvzclone.pirateunits.Pirate();

然后检查您是否仍然收到相同的错误消息?

关于java - 外部包无法访问类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047173/

相关文章:

java - 我应该将源代码放在与源代码相同的文件夹中吗?

java - 确定 Java 语言功能是否在特定的 Android SDK(平台)中可用

ios - 对类对象使用 objc_setAssociatedObject 是否正确?

grails - Grails中字段级别的ACL

java - 在桌面应用程序中设置权限/功能?

android - java.lang.SecurityException : Not allowed to start service Intent without permission BIND_INPUT_SERVICE 错误

java - 如何在java中将字符串日期转换为时间戳?

Java - 变量的空间复杂度

java - 将 .class 文件转换为 .jar 文件的 .java 文件

javascript - 是否有可能将所有全局/继承的 css 类应用于一个元素?