public static <T> T getFirst(Iterable<T> iterable) {
		if (iterable instanceof List) {
			final List<T> list = (List<T>) iterable;
			return CollUtil.isEmpty(list) ? null: list.get(0);
		}

		return getFirst(getIter(iterable));
	}
@Test
	public void getFirstTest() {
		assertNull(IterUtil.getFirst((Iterable<Object>) null));
		assertNull(IterUtil.getFirst(CollUtil.newArrayList()));

		assertEquals("1", IterUtil.getFirst(CollUtil.newArrayList("1", "2", "3")));
		final ArrayDeque<String> deque = new ArrayDeque<>();
		deque.add("3");
		deque.add("4");
		assertEquals("3", IterUtil.getFirst(deque));
	}