Людям, обеспокоенным "упаковкой" в ответе jsight: нет ни одного. String.valueOf(Object)
используется здесь, и никакое распаковывание к int
никогда не выполняется.
, Используете ли Вы Integer.toString()
или String.valueOf(Object)
, зависит от того, как Вы хотите обработать возможные пустые указатели. Вы хотите выдать исключение (вероятно), или иметь "пустые" Строки в Вашем списке (возможно). Если первый, Вы хотите бросить NullPointerException
или некоторый другой тип?
кроме того, один маленький дефект в ответе jsight: List
интерфейс, Вы не можете использовать новый оператор на нем. Я, вероятно, использовал бы java.util.ArrayList
в этом случае, тем более, что мы знаем впереди, какой длины список, вероятно, будет.
Запуская TlbImp
сам на в файлах-нарушителях мне удалось определить причину ошибки. TlbImp
находится где-то вроде:
C: \ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ TlbImp.exe
Я запускал его с файлом TLB, который был сгенерирован при компиляции моего COM DLL, и я получил более подробное сообщение об ошибке, чем то, что мне сообщила Visual Studio.