java - 跨平台的静态记录器,例如Java(小程序)和 Android

标签 java android logging cross-platform applet

我想使用类似的东西:

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);
}

编译器提示静态。我该怎么做呢?有可能吗?如果不是,正确的方法是什么?

提前致谢...

最佳答案

您无法按照您尝试的方式调用接口(interface)。您必须调用

MyAndroidLogger.e("MyApp","I have an error.");

MyAppletLogger.e("MyApp","I have an error.");

如果您想在两个平台上使用相同的调用,您必须创建一个具有对正确类的引用的帮助器类:

MyLoggerHelper.e("MyApp","I have an error.");

其中 MyLoggerHelper 是一个类,它知道应该调用前两个调用中的哪一个,并将该调用转发给适当的调用。

关于java - 跨平台的静态记录器,例如Java(小程序)和 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4225115/

相关文章:

java - 分布式 Hazelcast 缓存中的异步值计算

android - 为什么我的 toast 不起作用?

Android:如何更改 Theme.Holo.Light.Dialog.MinWidth 中的 DatePickerDialog 颜色?

java - JVM如何知道方法堆栈中变量的位置?

java - 在 NIO 中配对 SocketChannel

java - LibGDX 拖动纹理

android - 如何在 Flutter 中的 Column 上的 Widget 之间添加垂直分隔线?

logging - Nginx docker (13:权限被拒绝)将请求记录到已安装的卷时

logging - 在 kubernetes 中列出集群范围内的事件的狭窄授权

asp.net-mvc-3 - IIS 最大工作进程设置为 1,但会产生更多进程?