[Java] Как передать класс

А Block.endPortal = твойБлок уже не вштыривает? Раньше так работало.

UPDATE:
А вообще, зачем тебе вся это хрень? Есть замечательный BlockTracker, им и пользуйся.
 
Dragon2488 написал(а):
А Block.endPortal = твойБлок уже не вштыривает? Раньше так работало.

UPDATE:
А вообще, зачем тебе вся это хрень? Есть замечательный BlockTracker, им и пользуйся.
Перед началом присвоения ячейка в blocksList не обнуляется, а java уже бежит по конструктору и пытается регистрировать блок на занятый ID(blocksList[?] ведь ещё не null) и получается конфликт ещё до присвоения.
По крайней мере я так это понимаю.

По поводу BlockTracker'а - не могу найти нужный мне метод:
Код:
class BlockTracker
{
    private static final BlockTracker INSTANCE = new BlockTracker();
    private BitSet allocatedBlocks;

    private BlockTracker()
    {
        allocatedBlocks = new BitSet(4096);
        allocatedBlocks.set(0, 4096);
        for (int i = 0; i < Block.blocksList.length; i++)
        {
            if (Block.blocksList[i]!=null)
            {
                allocatedBlocks.clear(i);
            }
        }
    }
    public static int nextBlockId()
    {
        return instance().getNextBlockId();
    }

    private int getNextBlockId()
    {
        int idx = allocatedBlocks.nextSetBit(0);
        allocatedBlocks.clear(idx);
        return idx;
    }
    private static BlockTracker instance()
    {
        return INSTANCE;
    }
    public static void reserveBlockId(int id)
    {
        instance().doReserveId(id);
    }
    private void doReserveId(int id)
    {
        allocatedBlocks.clear(id);
    }


}
 
Назад
Сверху