Не совсем, в Java это имеет смысл, потому что String не является примитивным типом, как int, String наследуют от Object. Но в Dart почему String не объявляется как «строка», как int, когда оба наследуют от класса Object?
Возможно, было бы более целесообразно использовать каждый тип в Dart с заглавной буквы, , включая Int, Double и Bool, поскольку все являются потомками Object, а все остальные типы пишутся с заглавной буквы. Таким образом, вопрос не в том, почему строковые заглавные буквы, а в том, что int, double и bool не заглавными. Я предполагаю, что они просто выбрали схему именования, которая позволила бы Дарту чувствовать себя знакомым Java программистам, но я действительно не знаю.