我想使用像:
这样的东西MyLogger.e("MyApp","I have an error.");
在一个跨平台项目中,MyLogger应该是静态的,以使其在整个项目中可用。
所以我尝试了类似的事情:
MyAndroidLogger implements MyLogger {
public static void e(String strApp, String strErr) {
Log.e(strApp, strErr);
}
MyAppletLogger implements MyLogger {
private static Logger logger = Logger.getLogger();
public static void e(String strApp, String strErr) {
logger.e(strApp, strErr);
}
编译器抱怨静态。我该怎么做呢?有可能吗?如果没有,那么正确的做法是什么?
提前致谢...
答案 0 :(得分:2)
您无法按照自己的方式调用界面。你必须要打电话
MyAndroidLogger.e("MyApp","I have an error.");
或
MyAppletLogger.e("MyApp","I have an error.");
如果要在两个平台上使用相同的调用,则必须创建一个辅助类,该类具有对正确类的引用:
MyLoggerHelper.e("MyApp","I have an error.");
其中MyLoggerHelper是一个类,它知道它应该调用前两个调用中的哪一个,并将此调用转发给适当的调用。
答案 1 :(得分:2)
接口没有静态方法。这就是你无法调用它们的原因。
您可以尝试使用单身人士。
YourWhateverLogger.getInstance().e("Hello");