Java 我可以创建一个方法,该方法接受一个实例并将map对象作为静态对象返回吗?

Java 我可以创建一个方法,该方法接受一个实例并将map对象作为静态对象返回吗?,java,Java,如果我问了一个愚蠢的问题,我会道歉。我有一个方法,它获取一个对象,将其转换为一个映射并返回映射对象。它不访问声明它的类的任何实例变量 记录器又是一个静态字段 public Map<String, Object> createDocumentMap(final DocId docId) { logger.debug("Creating document map..."); Map<String, Object> documentMap =

如果我问了一个愚蠢的问题,我会道歉。我有一个方法,它获取一个对象,将其转换为一个映射并返回映射对象。它不访问声明它的类的任何实例变量

记录器又是一个静态字段

public Map<String, Object> createDocumentMap(final DocId docId) {

        logger.debug("Creating document map...");
        Map<String, Object> documentMap = new HashMap<String, Object>();
        documentMap.put("docNumber", docId.getDocNo());
        documentMap.put("docRev", docId.getDocRev());

        logger.debug("Document map ready. " + documentMap);

        return documentMap;
    }
publicmap createDocumentMap(最终DocId DocId){
调试(“创建文档映射…”);
Map documentMap=新的HashMap();
documentMap.put(“docNumber”,docId.getDocNo());
documentMap.put(“docRev”,docId.getDocRev());
调试(“文档映射准备就绪”。+文档映射);
返回文档地图;
}

尽管读了很多关于静态方法和非静态方法的文章,但我不知道是否将其声明为静态。如果它不依赖于任何实例变量(字段)或方法,那么您可以。否则你不能


实际上,
静态
方法通常用于不依赖于仅上下文参数的通用实用程序类。

这取决于您将如何使用此方法。如果您只在实例中使用它,它应该保持在实例方法中。
由于此方法不依赖于任何实例变量,因此可以将其更改为静态。如果要从其他对象使用此方法,请执行此操作。在这种情况下,您也可以考虑将此方法移到一些实用程序类。

正如您提到的,方法是使用实例变量,因此不能使用静态变量使用实例变量/对象.< /p> 将类中的映射声明为静态属性。

public static Map<String, Object> documentMap = null;
公共静态映射documentMap=null;
并在方法中初始化它

documentMap = new HashMap<String, Object>();
documentMap=newhashmap();

简短回答:可以。你试过了吗?只需将方法声明为
public static Map crea..
。是否声明方法static取决于您的要求如果将方法声明为static,则可以使用类名调用此方法,否则必须通过实例veriable调用此方法。@arnauddenoylle如果此静态方法再次调用另一个static,是否有任何危害方法?@KrishnaChaitanya No:)在这种情况下,如果这种方法不是静态的,那将是一种糟糕的做法。@arnauddenoylle是的,你是对的。另一种方法也是静态的。谢谢:)我提到过该方法不使用它在其中声明的类的任何实例变量。您创建了一个非final(可以为null)的静态公共变量,并在公共非静态方法中为其分配引用(使其无效?!)。你几乎不能让事情变得更糟。