Java 静态方法缓存是否返回值?

Java 静态方法缓存是否返回值?,java,Java,我有一个静态方法,它返回java.util.Date。当我第一次调用它时,它返回正确的日期。但是,当我在2分钟后再次调用它时,它仍然返回第一个日期。日期总是在方法date-date=new-date()中创建的并且不会存储在其外部 我的静态方法是相当复杂的Android类系统的一部分,因此很可能错误在其他地方。我只想知道静态方法是否有可能缓存其返回值。Java方法,无论是否静态,永远不会缓存结果,除非您自己显式地这样做。特别是,如果该方法 Date date = new Date(); 然后在

我有一个静态方法,它返回
java.util.Date
。当我第一次调用它时,它返回正确的日期。但是,当我在2分钟后再次调用它时,它仍然返回第一个日期。日期总是在方法
date-date=new-date()中创建的并且不会存储在其外部


我的静态方法是相当复杂的Android类系统的一部分,因此很可能错误在其他地方。我只想知道静态方法是否有可能缓存其返回值。

Java方法,无论是否静态,永远不会缓存结果,除非您自己显式地这样做。特别是,如果该方法

Date date = new Date();
然后在
日期
上生成一些计算,它将基于方法调用时的
新日期()
返回一个结果


返回值保持不变的最可能原因是该方法不会在第二次调用,例如,因为导致调用的代码路径决定它具有有效值。您可以通过向静态方法添加log语句来诊断此问题,并查看当您的代码应该第二次或第三次调用它时会发生什么情况。

否,方法不会缓存其返回值。可能的错误是您没有重新分配要返回的变量(即静态
日期
),或者每次都返回由相同值创建的
日期
对象。发布您的代码可以很好地确定这一点。共享您的代码或关闭此问题。谢谢您的回答。有很多代码需要通过,所以我会尝试自己找到它。我只是想知道这个简单问题的答案。我会在可能的时候(8分钟后)接受答案,我不知道还有什么其他方法可以“结束这个问题”。