public static int getOrder(Object obj) {
        if (obj instanceof Ordered) {
            return ((Ordered) obj).getOrder();
        } else {
            Integer order = OrderUtils.getOrder(obj.getClass());
            return order == null ? Ordered.LOWEST_PRECEDENCE : order;
        }
    }
@Test
    public void test_getOrder() {
        // get from Ordered
        MockOrdered ordered = new MockOrdered(100);
        assertThat(OrderUtil.getOrder(ordered)).isEqualTo(100);

        // get from Annotation @Order(xxx)
        assertThat(OrderUtil.getOrder(new MockAnnotationOrdered())).isEqualTo(1);

        // no order
        assertThat(OrderUtil.getOrder(new Object())).isEqualTo(Ordered.LOWEST_PRECEDENCE);
    }