【发布时间】:2014-02-11 05:34:24
【问题描述】:
我创建了一个公共的“Utils”类,我在其中放置了一些常用的静态方法。 在那个 Utils 类中,我创建了一个私有静态内部类,它是 Utils 提供的一些“工具”。 (该工具是满足我需要的某种解析器)。 Utils 中的方法之一,返回该解析器的新实例,一切正常。 “问题”是我收到警告,对于解析器内的每个 public 方法,不是从包含的 Utils 类调用的。
这是它的外观骨架:
public class Utils
{
public static Parser(String[] msgs) throws Exception
{
return Parser.create(msgs);
}
private static class Parser
{
/** fields... **/
private Parser()
{}
public static Parser create(String[] msgs) throws Exception
{
Parser parser = new Parser();
setupParser(msgs);
return parser;
}
private static void setupParser(String[] msgs) throws Exception
{ // do stuff
}
public boolean someInnerMethod(String key)
{
// do stuff
}
}
}
方法someInnerMethod引发警告:
Utils.Parser 类型的方法 someInnerMethod(String) 永远不会在本地使用
我做错了吗?有没有更好的方法来做我在这里所做的事情? 我通常希望 Parser 不能从外部访问,但可以使用静态方法获得它(我不想每次需要它的方法时都实例化 Utils 类)
提前致谢。
【问题讨论】:
-
您的一个“做事”评论正在评论结束
}。但这可能只是因为您删除了不相关的代码 -
你真的需要一个内部类吗?
Parser是否仅在Utils内部使用?
标签: java static-methods inner-classes static-class private-class