James' theorem states that a Banach space $B$ is reflexive iff every bounded linear functional on $B$ attains its maximum on the closed unit ball in $B$.

Now I wonder if I can drop the constraint that it is a ball and replace it by "convex set". That is, I want to know if every bounded linear functional on a reflexive Banach space $B$ attains its maximum on a closed and bounded convex set in $B$.

By Pietro's answer this is known to be true. Is the maximum unique? In optimization by vector space methods it is know that this is true if the set is the closed ball. This was actually my biggest question since I want to show a optimization problem has a unique solution.