@Nonnull
	public static Number mul(@Nonnull Number first, @Nonnull Number second) {
		// Check for widest types first, go down the type list to narrower types until reaching int.
		if (second instanceof Double || first instanceof Double) {
			return first.doubleValue() * second.doubleValue();
		} else if (second instanceof Float || first instanceof Float) {
			return first.floatValue() * second.floatValue();
		} else if (second instanceof Long || first instanceof Long) {
			return first.longValue() * second.longValue();
		} else {
			return first.intValue() * second.intValue();
		}
	}
@Test
	void testMul() {
		assertEquals(21, NumberUtil.mul(3, 7));
		assertEquals(21D, NumberUtil.mul(3, 7.0D));
		assertEquals(21F, NumberUtil.mul(3, 7.0F));
		assertEquals(21L, NumberUtil.mul(3, 7L));
	}