你可以这样做,但对你帮助不大。因为那些范围ArrayList
是 if 语句的主体。
您可以执行以下操作:
ArrayList<Object> lineBuffer;
if(Main.NEW_STYLE) lineBuffer = new ArrayList<LogFileLine>();
else lineBuffer = new ArrayList<String>();
然后相应地投射你的对象。另一种方法是创建一个容器接口,然后它将是您的类型ArrayList
:
ArrayList<LogInterface> lineBuffer = new ArrayList<LogInterface>();
lineBuffer.add(new LogInterface_LogFileLine(aLogFileLine));
lineBuffer.add(new LogInterface_String("lalelu"));
然后,您将实现两个版本的LogInterface
,一个持有String
( LogInterface_String
),另一个持有LogFileLine
( LogInterface_LogFileLine
)。
但是,既然你命名了你的 boolean NEW_STYLE
,我想它会在某个时候完全取代“旧风格”,所以我建议你做我的第一个建议。然后,您必须if (Main.NEW_STYLE) ; else ;
在访问lineBuffer
. 但是一旦你不再需要它,将旧东西踢出去会容易得多。