Why display list doesn't apply without applyStates()

While navigating LWJGLRenderer, I found createDisplayList() has a statement I can't understand.



if (!generatingDisplayList) {
            applyStates(tris.states, tris);
}


To be effective, applyStates should be included in display list. Isn't it?
Is there any reason to do this?

Display lists are used in jME to optimize mesh data, which is independent from the render state that is applied to it. With this approach you can use the same mesh with different materials.

Momoko_Fan said:

Display lists are used in jME to optimize mesh data, which is independent from the render state that is applied to it. With this approach you can use the same mesh with different materials.

Thanks. Now I see. :)
Then if a mesh is not shared, I could include render states.