java - 我如何从该方法外部访问该变量?

标签 java java-8 minecraft-forge

我一直在尝试开发一个《我的世界》模组,但遇到了一个障碍,我没有运气能够超越。在尝试解决此问题时,我筛选了多个其他问题和网站,但无济于事。

我得到的最接近的结果是在方法外部创建变量,然后在方法内部设置值。但是,这样做的问题是它总是返回 null。

另外,如果还不清楚的话,我说的是“taskEntriesMethod”变量。

这是我的代码:

 public void getExecutingTaskEntries(Profiler profiler)
    {
        try
        {
            Class<?> AITasks = Class.forName("net.minecraft.entity.ai.EntityAITasks");

            Field taskEntries = AITasks.getDeclaredField("executingTaskEntries");
                  taskEntries.setAccessible(true);

            Object AITasksObj = taskEntries.get(new EntityAITasks(profiler));

            Set<EntityAITasks.EntityAITaskEntry> taskEntriesMethod = (Set<EntityAITaskEntry>) AITasksObj;



        }
        catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { exception.printStackTrace(); }

    }


    private final Set<EntityAITasks.EntityAITaskEntry> executingTaskEntries = taskEntriesMethod; //  <-- (this is what errors out)

最佳答案

您创建了一个 get 方法,但将其声明为 void。您可能想将代码更改为如下所示:

public Set<EntityAITasks.EntityAITaskEntry> getExecutingTaskEntries(Profiler profiler) {
    //your code
    return (Set<EntityAITaskEntry>) AITasksObj;
}

然后像这样使用它

Set<EntityAITasks.EntityAITaskEntry> executingTaskEntries = getExecutingTaskEntries(profiler)

关于java - 我如何从该方法外部访问该变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62189155/

相关文章:

java - 直接使用 Spring @Async 与 CompleteableFuture 相比有什么优势?

java - 具有通用签名的接口(interface)中的静态方法

java - Java 8 中的实例方法引用类型有什么区别?

java - 将下载的 minecraft mod 更新到 1.8

minecraft - 锻造 1.7.10 : Error while "gradlew setupDecompWorkspace"

java - hashmap.get(char c) 仅在 linux 中为特殊字符返回 null

java - intellij formatter 用于方法调用和实例调用的换行

java - ApplicationInfo 元数据返回 null

java - 当我装备盔甲时激活的方法

java - Java 的 Rails ActiveRecord 插件 acts_as_versioned (JPA)