The Compatibility Docs (https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/Compatibility.html#Java_API) list the policies for Private, Public, not annotated, etc Classes and members, but it doesn't say what happens when there's a conflict. We should try obviously try to avoid this situation, but it would be good to explicitly state what takes precedence.
As an example, until
YARN-3225 made it consistent, RefreshNodesRequest looked like this:
Note that the class is marked @Private, but the method is marked @Public.
In this example, I'd say that the class level should have priority.