(добавление ответа, потому что примеров с универсальными символами Generics недостаточно)
// Source
List<Integer> intList = Arrays.asList(1,2,3);
List<Double> doubleList = Arrays.asList(2.78,3.14);
List<Number> numList = Arrays.asList(1,2,2.78,3.14,5);
// Destination
List<Integer> intList2 = new ArrayList<>();
List<Double> doublesList2 = new ArrayList<>();
List<Number> numList2 = new ArrayList<>();
// Works
copyElements1(intList,intList2); // from int to int
copyElements1(doubleList,doublesList2); // from double to double
static <T> void copyElements1(Collection<T> src, Collection<T> dest) {
for(T n : src){
dest.add(n);
}
}
// Let's try to copy intList to its supertype
copyElements1(intList,numList2); // error, method signature just says "T"
// and here the compiler is given
// two types: Integer and Number,
// so which one shall it be?
// PECS to the rescue!
copyElements2(intList,numList2); // possible
// copy Integer (? extends T) to its supertype (Number is super of Integer)
private static <T> void copyElements2(Collection<? extends T> src,
Collection<? super T> dest) {
for(T n : src){
dest.add(n);
}
}
Я использовал Транспортный формирователь XP на моем XP dev поле на работе. Это, кажется, обрабатывает любое соединение (не просто HTTP). Это не было прекрасно, но и работало достаточно хорошо на тесты, которые я делал. Если Вы будете в Windows, возможно, то он сделает достаточно для Вас.
Попробуйте dummynet. Вы найдете много ресурсов в сети, включая этот учебное руководство .
Пропускная способность, задержка, дрожание и потеря пакетов могут все повлиять на пользовательский опыт. Несколько программных продуктов, которые работают на хосте (или VM) позволяют этим "рычагам" быть вытянутыми.
В прошлый раз, когда я исследовал, я нашел несколько возможностей:
dummyet (link1) dummynet (link2)
Cisco (Необходимый Вход в систему CCO)
, Если Вы хотите что-то, клиент, базирующийся, возможно, пробует shunra, и если Вы хотите что-то в инфраструктуре wanem, довольно легко, так как их доступное устройство VMware.
Какой сетевой трафик? Если это будет HTTP, то это будет работать на Вас:
Как насчет этот инструмент (Генератор сетевого трафика)?
Вы правы. dummynet работает только в FreeBSD, он на самом деле встроен в ядро.
то, Что я сделал, когда я использовал его, было захватом более старый ПК, который никто больше не использовал, и установите распределение FreeBSD .
Скрипач является (nother) веб-прокси, который может использоваться для ухудшения соединения.
Dummynet является способом пойти, особенно если Вы хотите моделировать сложные сценарии, такие как подключения ADSL (асимметричный восходящий канал и нисходящий канал), "Сказало медленное соединение" (длинная задержка), ссылки с потерями, и т.д. Как Christian, можно найти некоторые запасные старые ПК и установить FreeBSD. Можно также использовать VMware, но я не повторно управлял бы этим.