【问题标题】:proguard copying methods in interface保护接口中的复制方法
【发布时间】:2012-05-03 13:52:16
【问题描述】:

在反编译我的接口后,我发现 proguard 在上层接口中复制了我实现的方法,它本身就是一个类。

这是我的界面经过混淆处理后的样子(请注意,proguard 甚至添加了实现中的注释)

package com.company.project.f.a.a;


import java.util.List;
import org.apache.log4j.Logger;

@Component(value="ServiceImpl")
public class a
{

    public b a(int i)
    {
        if((i = b.a(i)) != null)
        {
            if(i.size() == 0)
            {
                a_.fatal("It is expected at least one record.");
                return null;
            } else
            {
                return (b)i.get(0);
            }
        } else
        {
            return null;
        }
    }

    public a()
    {
        a_ = Logger.getLogger(getClass());
    }

    public com.company.project.b.a.a a()
    {
        return b;
    }

    public void a(com.company.project.b.a.a a1)
    {
        b = a1;
    }

    private com.company.project.b.a.a b;
    Logger a_;
}

下面的类也发生了同样的问题(proguard 将接口转换为具有相同组件名称的类)

@Component("testDao")
public class TestDaoImpl implements TestDao {

    @Override
    public void testing() {
        // TODO Auto-generated method stub

    }

【问题讨论】:

    标签: proguard


    【解决方案1】:

    解决了: 根据 eric lafortune 先生的说法,优化器正在合并接口和类。 所以我用了

    -dontoptimize
    

    【讨论】:

      猜你喜欢
      • 2016-07-25
      • 2013-04-07
      • 2021-11-07
      • 2013-09-02
      • 2010-11-17
      • 2013-02-26
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多