0

当@RequestMapping 在父类中使用与子类不在同一个包中的静态最终常量时,这个想法给了我一个错误,例如

'V1_BASE_URL' 在 'XXXXXXXX.BaseController' 中具有受保护的访问权限

所以,我不知道为什么,接下来是我的代码。

这是父类

package com.controller;
public class BaseController {

protected static final String V1_BASE_URL = "/crm/v1/";

}

这是子类,它不在同一个包中BaseController

package com.controller.corpus;
@RequestMapping(V1_BASE_URL+"/crm/v1/corpus_subset")
public class CorpusSubsetController extends BaseController {

}

错误图像

我没有找到一些有用的答案可以解决我的问题,但是我发现如果子类和父亲在同一个包中,类名中的注释可以使用static constant,但是如果子类与父亲不在同一个包中,则注释不能使用,所以我的问题是类名中的注释属于谁?如果类中的注释属于包A中的哪一个,那么注释属于包A?

4

1 回答 1

0

这是因为您试图V1_BASE_URL在类范围之外的注释中访问。如果您像这样访问它,您将不会有任何编译错误,例如:

public class CorpusSubsetController extends BaseController {
    public void test() {
        String test = V1_BASE_URL;
    }
}
于 2020-07-21T23:09:25.067 回答