The problem is that, as the compiler error tells you, there are (at least) two print methods that can accept null. Actually there are three; also print(Object).
Now the compiler tries to find the most specific version of an overloaded method. Both char and String are sub types of Object, so that's why the third method is not considered. char and String are both too distinct for the compiler to choose for you. To fix this, specify the type by casting: