ContractApiFactory { public <ContractT> ContractApi<ContractT> create(final ContractAddress contractAddress, final Class<ContractT> type) { return create(contractAddress, type, DEFAULT_TRY_COUNT_AND_INTERVAL, getClass().getClassLoader()); }  ContractApi<ContractT> create(final ContractAddress contractAddress,
      final Class<ContractT> type); ContractApi<ContractT> create(final ContractAddress contractAddress,
      final Class<ContractT> type, final TryCountAndInterval tryCountAndInterval); ContractApi<ContractT> create(final ContractAddress contractAddress,
      final Class<ContractT> type, final ClassLoader classLoader); @SuppressWarnings("unchecked") ContractApi<ContractT> create(final ContractAddress contractAddress,
      final Class<ContractT> type, final TryCountAndInterval tryCountAndInterval,
      final ClassLoader classLoader); static final TryCountAndInterval DEFAULT_TRY_COUNT_AND_INTERVAL; }
@Test public void testCreate() { final ContractAddress contractAddress = new AergoKeyGenerator().create().getAddress() .adapt(ContractAddress.class); final Class<TestContract> type = TestContract.class; final TryCountAndInterval tryCountAndInterval = TryCountAndInterval.of(3, Time.of(100L)); final ContractApiFactory contractApiFactory = new ContractApiFactory(); assertNotNull(contractApiFactory.create(contractAddress, type)); assertNotNull(contractApiFactory.create(contractAddress, type, tryCountAndInterval)); assertNotNull(contractApiFactory.create(contractAddress, type, getClass().getClassLoader())); assertNotNull(contractApiFactory .create(contractAddress, type, tryCountAndInterval, getClass().getClassLoader())); }