Java 从另一个获取字符串 class 返回 null
Java Getting String from another class returning null
我目前在我的一个 class 中有两个构造函数,一个到我的主 class,另一个到另一个 class,它有我的大部分方法采用。我不为我的第二个 class 使用静态方法的原因是我有一个构造函数,是因为我不希望代码被任何其他来源使用,只是我的。这是两个构造函数:
PrisonProfessionalMain plugin;
public PPCommandAdminMenu(PrisonProfessionalMain instance)
{
plugin = instance;
}
QuickMethods qm;
public PPCommandAdminMenu(QuickMethods instance)
{
qm = instance;
}
然后我在此处从 QuickMethods
class 调用一个方法:
qm.getConfigString(plugin, "prefix")
显然,无论我从这个 class 调用什么方法,它 returns 都是空的。我不认为这是我放在方法里面的东西,但这是另一个 class:
的方法
public String getConfigString(PrisonProfessionalMain instance, String configvar)
{
return colorize(instance.getConfig().getString(configvar));
}
我在这里没有看到问题,但我想知道我是否应该改用静态方式。出于上述原因,我想尝试远离静态方法。
记住:从这个 class 调用任何其他方法都会导致它返回 null。我知道这一点,因为在控制台中它有一个堆栈跟踪,读取它为空。它在从这个 class.
调用任何方法的行上说了这一点
我尝试从方法内部删除字符串和实例:
public String getConfigString()
{
return System.out.println("test");
}
然而,这仍然导致另一个空指针,指向我调用该方法的行。
我的问题是:如何让 QuickMethods class 在调用 methods/strings 时停止返回 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()
is void
(and System.out
是 PrintStream
)。你可以使用像
这样的东西
String str = "test";
System.out.println(str);
return str;
我目前在我的一个 class 中有两个构造函数,一个到我的主 class,另一个到另一个 class,它有我的大部分方法采用。我不为我的第二个 class 使用静态方法的原因是我有一个构造函数,是因为我不希望代码被任何其他来源使用,只是我的。这是两个构造函数:
PrisonProfessionalMain plugin;
public PPCommandAdminMenu(PrisonProfessionalMain instance)
{
plugin = instance;
}
QuickMethods qm;
public PPCommandAdminMenu(QuickMethods instance)
{
qm = instance;
}
然后我在此处从 QuickMethods
class 调用一个方法:
qm.getConfigString(plugin, "prefix")
显然,无论我从这个 class 调用什么方法,它 returns 都是空的。我不认为这是我放在方法里面的东西,但这是另一个 class:
的方法public String getConfigString(PrisonProfessionalMain instance, String configvar)
{
return colorize(instance.getConfig().getString(configvar));
}
我在这里没有看到问题,但我想知道我是否应该改用静态方式。出于上述原因,我想尝试远离静态方法。
记住:从这个 class 调用任何其他方法都会导致它返回 null。我知道这一点,因为在控制台中它有一个堆栈跟踪,读取它为空。它在从这个 class.
调用任何方法的行上说了这一点我尝试从方法内部删除字符串和实例:
public String getConfigString()
{
return System.out.println("test");
}
然而,这仍然导致另一个空指针,指向我调用该方法的行。
我的问题是:如何让 QuickMethods class 在调用 methods/strings 时停止返回 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()
is void
(and System.out
是 PrintStream
)。你可以使用像
String str = "test";
System.out.println(str);
return str;