Java 包与类型冲突
可能重复:Java 包与类型冲突,java,Java,可能重复: 我是java新手,但我试着为游戏谱系2编写脚本 这里有一个密码: package ZergZ.ZTeleport; import javolution.util.FastMap; import com.l2jserver.Config; import com.l2jserver.gameserver.handler.IVoicedCommandHandler; import com.l2jserver.gameserver.model.actor.instance.L2PcInst
我是java新手,但我试着为游戏谱系2编写脚本 这里有一个密码:
package ZergZ.ZTeleport;
import javolution.util.FastMap;
import com.l2jserver.Config;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.handler.VoicedCommandHandler;
public class ZTeleport implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS =
{
"teleport"
};
@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
{
if (activeChar == null)
return false;
if (params.equalsIgnoreCase("aden"))
{
activeChar.teleToLocation(147736,-56243,-2781);
}
if (params.equalsIgnoreCase("gracia"))
{
activeChar.teleToLocation(-186742,244167,2675);
}
if (params.equalsIgnoreCase("pvp1"))
{
activeChar.teleToLocation(147736,-56243,-2781);
}
if (params.equalsIgnoreCase("pvp2"))
{
activeChar.teleToLocation(179337,221937,4475);
}
}
@Override
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}
当服务器启动时,java说:
1.\ZTeleport.java中的错误(在第17行)包ZergZ.ZTeleport
^^^^^^^^^^^^^^^^^^^^
包ZergZ.ZTeleport与类型冲突 该脚本位于ZergZ/ZTeleport.java中 我会给你另一个很好的脚本:
package custom.HeroCirclet;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
public class HeroCirclet extends Quest
{
______
}
谢谢。这是因为在ZergZ包中有一个名为
ZTeleport
的类和一个名为ZergZ.ZTeleport
的包
包
名称基本上是Java文件所在的项目目录
这意味着如果ZTeleport.java
位于ZergZ
目录中,则包名为
package ZergZ;
您没有在包声明中指定类名,目录用
而不是目录文件夹令牌分隔。这是因为在ZergZ包中有一个名为ZTeleport
的类和一个名为ZergZ.ZTeleport
的包
包
名称基本上是Java文件所在的项目目录
这意味着如果ZTeleport.java
位于ZergZ
目录中,则包名为
package ZergZ;
您没有在包声明中指定类名,目录用
而不是目录文件夹标记分隔。这里的冲突是包名和类名之间的冲突,它们是相同的。如果您坚持通常的命名约定(使用小写开头命名包,使用大写开头命名类),则应避免此类情况。此处的冲突是包名和类名之间的冲突,两者是相同的。如果您坚持通常的命名约定(使用小写开头命名包,使用大写开头命名类),则应该避免这种情况。您应该遵循Java命名约定。将您的软件包更改为:
package zergZ.zTeleport; // all name is begin with lower
// no change, but for clearer : all class name should begin with higher character
public class ZTeleport implements IVoicedCommandHandler
{
}
当然,在这之后,您应该刷新或/和重建项目,以查看它是否正常工作
希望得到以下帮助:)您应该遵循Java命名约定。将您的软件包更改为:
package zergZ.zTeleport; // all name is begin with lower
// no change, but for clearer : all class name should begin with higher character
public class ZTeleport implements IVoicedCommandHandler
{
}
当然,在这之后,您应该刷新或/和重建项目,以查看它是否正常工作
希望得到以下帮助:)您说“脚本位于ZergZ/ZTeleport.java中”。这意味着类ZTeleport
属于包ZergZ
。但是您已经声明它属于另一个包,ZergZ.ZTeleport
在第二个示例中,我敢打赌源文件位于custom/HeroCirclet/HeroCirclet.java中,它与其包声明相匹配,并且不会产生命名冲突
您需要将源文件(人们通常不称java源文件为“脚本”,顺便说一句)移动到与其声明的包匹配的目录中,或者更改包声明以匹配其位置。您说“脚本位于ZergZ/ZTeleport.java中”。这意味着类ZTeleport
属于包ZergZ
。但是您已经声明它属于另一个包,ZergZ.ZTeleport
在第二个示例中,我敢打赌源文件位于custom/HeroCirclet/HeroCirclet.java中,它与其包声明相匹配,并且不会产生命名冲突
您或者需要将源文件(人们通常不称java源文件为“脚本”,顺便说一句)移动到与其声明的包匹配的目录中,或者更改包声明以匹配其位置。如果您看到它显示的错误
package ZergZ.ZTeleport;
^^^^^^^^^^^^^^^^^^^^
The package ZergZ.ZTeleport collides with a type
因此,基本上您在命名类和包的方式之间产生了冲突。如果您坚持java约定,可以将其命名为:
// Notice the first character of package name is small character
package zergZ.zTeleport;
// Class Name's first character is capital.
public class ZTeleport implements IVoicedCommandHandler{
..
}
如果你看到错误,它会说
package ZergZ.ZTeleport;
^^^^^^^^^^^^^^^^^^^^
The package ZergZ.ZTeleport collides with a type
因此,基本上您在命名类和包的方式之间产生了冲突。如果您坚持java约定,可以将其命名为:
// Notice the first character of package name is small character
package zergZ.zTeleport;
// Class Name's first character is capital.
public class ZTeleport implements IVoicedCommandHandler{
..
}
我会给你一个脚本,它工作完美,它;It’就像我的(行乞)包裹一样;导入com.l2jserver.gameserver.model.actor.L2Npc;导入com.l2jserver.gameserver.model.actor.instance.L2PcInstance;导入com.l2jserver.gameserver.model.quest.quest;导入com.l2jserver.gameserver.model.quest.QuestState;公共类HeroCirclet扩展了Quest{我可以向您保证,
HeroCirclet
在目录custom/HeroCirclet
下,这就是它编译得很好的原因。我给您一个脚本,它工作得很完美,它和我的(Begging)一样打包custom.HeroCirclet;导入com.l2jserver.gameserver.model.actor.L2Npc;导入com.l2jserver.gameserver.model.actor.instance.L2PcInstance;导入com.l2jsserver.gameserver.model.quest.quest;导入com.l2jserver.gameserver.model.quest.state;公共类HeroCirclet扩展了quest{我可以向您保证,HeroCirclet
在目录custom/HeroCirclet
下,这就是为什么它可以很好地编译。您的意思是,您用小写开头字符重命名了您的包,但仍然有错误“包与类型冲突”,使用新的包名?我会感到惊讶(这并不意味着它能解决你所有的问题,但这是一个开始)。你的意思是你用小写字母重命名了你的包,但是你仍然有错误“包与类型冲突”,使用新的包名?我会感到惊讶(这并不意味着它能解决你所有的问题,但这是一个开始)。