如何将变量名传递给方法(记录)?

时间:2016-05-26 13:34:04

标签: java android

我是第一个问题的初学者。我想有方法允许快速记录许多参数,所以我想在日志行变量名称和值。 用法示例 - 我将我想要记录的内容作为参数:

fastLog(
        animation.getAnimatedValue(),
        animation.getDuration(),
        animation.getInterpolator(),
        animation.getListeners(),
        animation.getRepeatCount()
            );

下面这个方法给了我值,它可以工作,但是如何记录名称,例如" animation.getAnimatedValue()"价值观旁边?

private void fastLog(Object... obj) {

        for(Object o : obj) {
            String s = String.valueOf(o);
            Log.d("FastLog", s);
        }
}

结果将是:

Fastlog 1000 animation.getAnimatedValue()
(...)

3 个答案:

答案 0 :(得分:0)

也许是这样的

private void fastLog(Object... obj) {
    String log = "";
    for(Object o : obj) {
        log += o + " ";
    }
    Log.d("FastLog", log);
}

用法: fastLog("Value1", value1, "value2", value2);

答案 1 :(得分:0)

该设置无法实现。将参数更改为:

private final static Logger LOG
            = Logger.getLogger(MyClass.class.getName());    
private void fastLog(Map<String, Object> log) {

        for(Entry <String, Object> o : log) {
            LOG.info("FastLog {0}:{1}", new Object[]{o.getKey(), o.getValue()});
        }
}

我不清楚你对logger使用了什么,上面的代码使用java.util.logging.Logger。

答案 2 :(得分:0)

例如,您可以创建对Pair<Object, String>SimpleMapEntry<> - 并将它们作为args而不仅仅是对象提供。将所需的方法名称放在second,然后您可以使用String.format()

将方法与对象值一起记录