logger也是一个静态字段。
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;
}
我不知道是否要将它声明为静态,尽管阅读了许多关于静态方法与非静态方法的线程。
答案 0 :(得分:1)
这取决于您将如何使用此方法。如果仅在实例中使用它,则应保留实例方法。 由于此方法不依赖于任何实例变量,因此可以将其更改为静态。如果您将从其他对象使用此方法,请执行此操作。在这种情况下,您还可以考虑将此方法移动到某个实用程序类。
答案 1 :(得分:0)
如果它不依赖于任何实例变量(字段)或方法,那么你可以。否则你不能。
实际上,static
方法通常用于通用实用程序类,它不依赖于仅上下文参数。
答案 2 :(得分:0)
正如您所提到的,您的方法是使用实例变量,因此您无法使用实例变量/对象使方法成为静态。
答案 3 :(得分:0)
将类中的地图声明为静态属性。
public static Map<String, Object> documentMap = null;
并在您的方法中初始化它。
documentMap = new HashMap<String, Object>();