Вы не можете указать ни конструктор, ни статический метод в интерфейсе ... что вы можете сделать, это добавить ограничение типа для параметра универсального типа, например
void Foo<T>() where T : new()
{
T t = new T();
// Do stuff with t
}
Это то, о чем ты думаешь?
Извини, дружище, если ты погуглил и ничего не нашел, то это верный набор уникальных требований, которые у тебя есть, время для инноваций.
Возьми то, что у тебя есть, придумай несколько идей, и попробуйте, идет с работой!
Я не нашел лучшей альтернативы ical4j. Я использовал это довольно успешно. К сожалению, как вы указали, все, что он делает, это привязка к XML, без другого способа вывести его на что-то еще. Вы можете пройтись по DOM после создания и вывести соответствующий текст - хотя это кажется немного странным, поскольку все, что вам нужно, это text / html, у меня была такая же проблема, и я только что проанализировал XML.
API iCal4j - это немного странно, и вы, возможно, захотите расслабить синтаксический анализ и включить совместимость Outlook / Notes, чтобы помочь вам в этом процессе. Вы можете написать свой собственный синтаксический анализатор, реализующий net.fortuna.ical4j.data.CalendarParser
, и таким образом вывести необходимую информацию в виде обычного текста. Я думаю, что по умолчанию net.fortuna.ical4j.data.CalendarParserImpl
составляет около 500 строк кода,