此语法的用途和含义是什么?我看到private Object mSelectedOperationRow;
和mMessageService = pMessageService;
等行。
下面有更完整的代码。
public class SearchResponseBean extends BaseBean implements Serializable,
SearchResponse {
@Autowired
private SearchLifecycleService mSearchLifecycleService;
@Autowired
private ConfigurationServiceImpl mConfig;
@Value("#{sessionBean}")
private Session session;
@Value("#{searchRequestBean}")
private SearchRequest searchRequest;
@Value("#{searchResponseFilterByBean}")
private SearchResponseFilterBy searchResponseFilterBy;
@Value("#{searchHistoryBean}")
private HistoryBean<SearchHistoryItem> historyBean;
@Autowired
private SearchResponseDataModelFactory mSearchResponseDataModelFactory;
private int mCount;
private DataModel mDataModel;
private SearchPerspective mSearchPerspective;
private Operation mSelectedOperation;
private Object mSelectedOperationRow;
private List mSelectedList;
private List<String> mAvailableOperations;
private List mFilteredList;
private boolean mRelatedDocSearch;
private transient MessageService mMessageService;
public SearchResponseBean() {
mMessageService = new MessageServiceImpl();
}
public SearchResponseBean(MessageService pMessageService) {
mMessageService = pMessageService;
}
protected void init() {
String THIS_METHOD_NAME = "init";
mFilteredList = null;
mSelectedList = null;
mSelectedOperationRow = null;
mSelectedOperation = null;
mCount = -1;
mDataModel = null;
mSearchPerspective = null;
mAvailableOperations = null;
mRelatedDocSearch = false;
logger.debug(getClass(), THIS_METHOD_NAME,
"Initialized with null/defaults. ");
}
答案 0 :(得分:6)
这不是语法问题,它是项目指南的事情。有些项目具有变量,成员,参数等的命名约定。
它意味着更容易区分局部变量,成员和方法参数。
答案 1 :(得分:5)
m
和p
前缀不是Java语法本身的一部分,它们只是某些项目中使用的约定。
m
是&#34;会员&#34;的简称p
是&#34;参数&#34;的缩写。这样,当阅读一长串代码时,它清楚每个变量的来源及其含义。现代IDE对成员的颜色不同,因此这种惯例可能没有以前那么有用,但它仍然在某些项目中使用。
答案 2 :(得分:3)
它是Hungarian Notation的一个例子,这是一种命名约定,现在很少用于Java代码。
答案 3 :(得分:2)
这些只是命名惯例。
我认为这些只是C ++世界的遗留问题,或者可能是Java的早期IDE版本,在这些版本中可能很难查看变量的“格式化”并确定它是局部变量还是类级别变量。
在我看来,现在使用'm'和'p'前缀对现代IDE来说是多余的。