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

标签 java string 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.out 是一个 PrintStream)。你可以使用类似的东西

String str = "test";
System.out.println(str);
return str;

关于Java从另一个类获取字符串返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114679/

相关文章:

JavaScript : Zero padding in string

c++ - 未处理的异常在 0x00C87963 在 .... : 0xC0000005: Access violation reading location 0xCCCCCCE0

java - 将 JAX-RS 与 CDI 集成的正确方法?

java - 将文件保存到内部存储(文档文件夹)权限被拒绝

python - 如何比较 Tensorflow 中的两个字符串?

linux - 根据固定长度将文件中的每一行拆分为带有分隔符的子字符串

java - 在oracle中的数字字段中输入空值

ios - MPMediaItemArtwork 为空,而封面在 iTunes 中可用

java - 读取大型 xls 文件时超出 GC 开销限制

Java 7 默认语言环境