методы копирования proguard в интерфейсе

после декомпиляции моего интерфейса я обнаружил, что 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

    }

person Genjuro    schedule 03.05.2012    source источник


Ответы (1)


решил это: по словам г-на Эрика Лафортуна, оптимизатор объединяет интерфейс и класс. поэтому я использовал

-dontoptimize
person Genjuro    schedule 04.05.2012