То, что Ваш относится к, называют "Универсальными Ограничениями". Существуют многочисленные ограничения, которые могут быть помещены на универсальный тип.
Некоторые основные примеры следующие:
where T: struct
- аргумент типа должен быть типом значения. Любой тип значения кроме Nullable
- может быть определен. См. Использовать Типы Nullable (Руководство по программированию C#) для получения дополнительной информации.
where T : class
- аргумент типа должен быть ссылочным типом; это применяется также к любому классу, интерфейсу, делегату или типу массива.
where T : new()
- аргумент типа должен иметь общедоступного конструктора без параметров. Когда используется вместе с другими ограничениями, new()
ограничение должно быть определено в последний раз.
where T :
- аргумент типа должен быть или произойти из указанного базового класса.
where T :
- аргумент типа должен быть или реализовать указанный интерфейс. Могут быть определены несколько интерфейсных ограничений. Интерфейс ограничения может также быть универсальным.
where T : U
- аргумент типа, предоставленный для [1 110], должен быть или произойти из аргумента, предоставленного для [1 111]. Это называют явным ограничением типа.
Они могут также быть соединены как это:
C#
public class TestClass where T : MyBaseClass, INotifyPropertyChanged, new() { }
public interface IGenericFace where T : SomeBaseClass
VB
Public Class TestClass(Of T As {MyBaseClass, INotifyPropertyChanged, New})
Public Interface IGenericInterface(Of T As SomeBaseClass)
Неважно.
Запустить привязку JBoss ко всем IP-адресам.
./run.sh -b 0.0.0.0
Разве вы не используете автономную JIRA, верно?
Я всегда запускаю tomcat и jboss за apache с помощью mod_jk. Это все еще скрывает порты, что отлично подходит для новичков.
Ваш сервер находится за NAT?
Иногда я использую ProxyPass или RewriteRules (mod_rewrite) для обеспечения внешнего доступа через обратный прокси.