Well it all depends how you handle `null` at the boundary between the two languages. In Ceylon, we let you write either:
String str = javaObject.javaMethod();
or: String? str = javaObject.javaMethod();
In the first case, we insert a runtime type check that throws an `AssertionError` if `javaMethod()` returns `null`. In the second case we don't.That is to say, the Ceylon compiler recognizes that it's dealing with a Java library where information about null is simply missing from the method signature and adjusts accordingly.