Java从另一个返回null的类获取字符串



我目前在我的一个课程中有两个构造函数,一个进入我的主班,另一个是我使用的大多数方法的另一个类。我不使用构造函数的第二类静态方法的原因,是因为我不希望任何其他来源都使用代码,只是我的。这是两个构造函数:

PrisonProfessionalMain plugin;
public PPCommandAdminMenu(PrisonProfessionalMain instance)
{
    plugin = instance;
}
QuickMethods qm;
public PPCommandAdminMenu(QuickMethods instance)
{
    qm = instance;
}

然后,我在此处调用QuickMethods类的方法:

qm.getConfigString(plugin, "prefix")

显然,我从这个类中称呼的任何方法都返回null。我认为这不是我将方法放入的,但这是其他类的方法:

public String getConfigString(PrisonProfessionalMain instance, String configvar)
{
    return colorize(instance.getConfig().getString(configvar));
}

我在这里看不到问题,但是我想知道我是否应该使用静态方式。我想尝试远离静态方法,原因是我上面说明的原因。

记住:调用此类的任何其他方法导致其返回null。我知道这一点,因为在控制台中,它具有堆栈跟踪,将其读取为无效。它在呼叫此类方法的任何方法的行上都说了这一点。

我尝试从方法内部删除字符串和实例:

public String getConfigString()
{
    return System.out.println("test");
}

然而,这仍然导致了另一个无效指针,指出了我称之为该方法的行。

我的问题是:我将如何让QuickMethods班级停止返回NULL,从而调用方法/字符串。

一次只能调用一个构造函数,鉴于您的代码似乎需要组合构造函数,例如

QuickMethods qm;
PrisonProfessionalMain plugin;
public PPCommandAdminMenu(PrisonProfessionalMain plugin, QuickMethods qm)
{
    this.plugin = plugin;
    this.qm = qm;
}

否则(按定义)将是null

另外,

public String getConfigString()
{
    return System.out.println("test");
}

不是法律代码,因为PrintStream.println()void(并且System.outPrintStream)。您可以使用

之类的东西
String str = "test";
System.out.println(str);
return str;

最新更新