org.robolectric.util.ReflectionHelpers.callConstructor()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(7.6k)|赞(0)|评价(0)|浏览(98)

本文整理了Java中org.robolectric.util.ReflectionHelpers.callConstructor方法的一些代码示例,展示了ReflectionHelpers.callConstructor的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ReflectionHelpers.callConstructor方法的具体详情如下:
包路径:org.robolectric.util.ReflectionHelpers
类名称:ReflectionHelpers
方法名:callConstructor

ReflectionHelpers.callConstructor介绍

[英]Reflectively call the constructor of an object.
[中]反射地调用对象的构造函数。

代码示例

代码示例来源:origin: robolectric/robolectric

@Implementation
protected static NfcAdapter getNfcAdapter(Context context) {
 if (!hardwareExists) {
  return null;
 }
 return ReflectionHelpers.callConstructor(NfcAdapter.class);
}

代码示例来源:origin: robolectric/robolectric

private static PackageParser.Provider createProvider(Package pkg, ProviderInfo info) {
 PackageParser.Provider provider =
   ReflectionHelpers.callConstructor(PackageParser.Provider.class);
 populateComponent(pkg, info, provider);
 return provider;
}

代码示例来源:origin: robolectric/robolectric

private static Service createService(Package pkg, ServiceInfo info) {
 PackageParser.Service service = ReflectionHelpers.callConstructor(PackageParser.Service.class);
 populateComponent(pkg, info, service);
 return service;
}

代码示例来源:origin: robolectric/robolectric

@Implementation
protected static AccessibilityWindowInfo obtain() {
 final AccessibilityWindowInfo obtainedInstance =
   ReflectionHelpers.callConstructor(AccessibilityWindowInfo.class);
 StrictEqualityWindowWrapper wrapper = new StrictEqualityWindowWrapper(obtainedInstance);
 obtainedInstances.put(wrapper, Thread.currentThread().getStackTrace());
 return obtainedInstance;
}

代码示例来源:origin: robolectric/robolectric

public static Window create(Context context) throws Exception {
 String className = getApiLevel() >= M
   ? "com.android.internal.policy.PhoneWindow"
   : "com.android.internal.policy.impl.PhoneWindow";
 Class<? extends Window> phoneWindowClass =
   (Class<? extends Window>) Window.class.getClassLoader().loadClass(className);
 return ReflectionHelpers.callConstructor(phoneWindowClass, ClassParameter.from(Context.class, context));
}

代码示例来源:origin: robolectric/robolectric

private static Typeface createUnderlyingTypeface(String familyName, int style) {
 long thisFontId = nextFontId++;
 FONTS.put(thisFontId, new FontDesc(familyName, style));
 if (getApiLevel() >= LOLLIPOP) {
  return ReflectionHelpers.callConstructor(Typeface.class, ClassParameter.from(long.class, thisFontId));
 } else {
  return ReflectionHelpers.callConstructor(Typeface.class, ClassParameter.from(int.class, (int) thisFontId));
 }
}

代码示例来源:origin: robolectric/robolectric

private FragmentController(F fragment, Class<? extends Activity> activityClass,
              Intent intent, Bundle arguments) {
 super(fragment, intent);
 this.fragment = fragment;
 if (arguments != null) {
  this.fragment.setArguments(arguments);
 }
 this.activityController = ActivityController.of(ReflectionHelpers.callConstructor(activityClass), intent);
}

代码示例来源:origin: robolectric/robolectric

@Implementation
protected WifiInfo getConnectionInfo() {
 checkAccessWifiStatePermission();
 if (wifiInfo == null) {
  wifiInfo = ReflectionHelpers.callConstructor(WifiInfo.class);
 }
 return wifiInfo;
}

代码示例来源:origin: robolectric/robolectric

@Implementation
protected Drawable mutate() {
 Bitmap bitmap = realBitmapDrawable.getBitmap();
 BitmapDrawable real = ReflectionHelpers.callConstructor(BitmapDrawable.class, ClassParameter.from(Bitmap.class, bitmap));
 ShadowBitmapDrawable shadow = Shadow.extract(real);
 shadow.colorFilter = this.colorFilter;
 shadow.drawableCreateFromStreamSource = drawableCreateFromStreamSource;
 return real;
}

代码示例来源:origin: robolectric/robolectric

@Implementation
 protected static LayoutInflater makeNewLayoutInflater(Context context) {
  Class<LayoutInflater> phoneLayoutInflaterClass =
    (Class<LayoutInflater>)
      ReflectionHelpers.loadClass(
        ShadowPolicyManager.class.getClassLoader(),
        "com.android.internal.policy.impl.PhoneLayoutInflater");
  return ReflectionHelpers.callConstructor(
    phoneLayoutInflaterClass, ClassParameter.from(Context.class, context));
 }
}

代码示例来源:origin: robolectric/robolectric

private void addUriPermission(@NonNull Uri uri, int modeFlags) {
 UriPermission perm = ReflectionHelpers.callConstructor(
   UriPermission.class,
   ClassParameter.from(Uri.class, uri),
   ClassParameter.from(int.class, modeFlags),
   ClassParameter.from(long.class, System.currentTimeMillis()));
 uriPermissions.add(perm);
}

代码示例来源:origin: robolectric/robolectric

@Override
 ParallelUniverseInterface getHooksInterface(SdkEnvironment sdkEnvironment) {
  Class<? extends ParallelUniverseInterface> clazz =
    sdkEnvironment.bootstrappedClass(MyParallelUniverseWithFailingSetUp.class);
  return callConstructor(clazz);
 }
};

代码示例来源:origin: robolectric/robolectric

/** internal only */
public static void configureDefaultDisplayForJBOnly(
  Configuration configuration, DisplayMetrics displayMetrics) {
 Class<?> arg2Type = ReflectionHelpers.loadClass(ShadowWindowManagerImpl.class.getClassLoader(),
   "android.view.CompatibilityInfoHolder");
 defaultDisplayJB = ReflectionHelpers.callConstructor(Display.class,
   ClassParameter.from(int.class, 0),
   ClassParameter.from(arg2Type, null));
 ShadowDisplay shadowDisplay = Shadow.extract(defaultDisplayJB);
 shadowDisplay.configureForJBOnly(configuration, displayMetrics);
}

代码示例来源:origin: robolectric/robolectric

@Test
public void callConstructorReflectively_callsPrivateConstructors() {
 ExampleClass e = ReflectionHelpers.callConstructor(ExampleClass.class);
 assertThat(e).isNotNull();
}

代码示例来源:origin: robolectric/robolectric

@Implementation
synchronized public static DisplayManagerGlobal getInstance() {
 if (instance == null) {
  MyDisplayManager myIDisplayManager = new MyDisplayManager();
  IDisplayManager proxy = ReflectionHelpers.createDelegatingProxy(IDisplayManager.class, myIDisplayManager);
  instance = ReflectionHelpers.callConstructor(DisplayManagerGlobal.class,
    ClassParameter.from(IDisplayManager.class, proxy));
  ShadowDisplayManagerGlobal shadow = Shadow.extract(instance);
  shadow.mDm = myIDisplayManager;
 }
 return instance;
}

代码示例来源:origin: robolectric/robolectric

/** Adds a USB port to UsbManager. */
public void addPort(String portId) {
 usbPorts.put(
   callConstructor(UsbPort.class,
     from(String.class, portId),
     from(int.class, getStaticField(UsbPort.class, "MODE_DUAL"))),
   new UsbPortStatus(
     getStaticField(UsbPort.class, "MODE_DUAL"),
     getStaticField(UsbPort.class, "POWER_ROLE_SINK"),
     getStaticField(UsbPort.class, "DATA_ROLE_DEVICE"),
     0));
}

代码示例来源:origin: robolectric/robolectric

@Test
public void callConstructorReflectively_wrapsCheckedException() {
 try {
  ReflectionHelpers.callConstructor(ThrowsCheckedException.class);
  fail("Expected exception not thrown");
 } catch (RuntimeException e) {
  assertThat(e.getCause()).isInstanceOf(TestException.class);
 }
}

代码示例来源:origin: robolectric/robolectric

@Implementation(minSdk = O)
 protected Object createDirectChannel(MemoryFile mem) {
  return ReflectionHelpers.callConstructor(SensorDirectChannel.class,
    ClassParameter.from(SensorManager.class, realObject),
    ClassParameter.from(int.class, 0),
    ClassParameter.from(int.class, SensorDirectChannel.TYPE_MEMORY_FILE),
    ClassParameter.from(long.class, mem.length()));
 }
}

代码示例来源:origin: robolectric/robolectric

@Test
public void callConstructorReflectively_whenMultipleSignaturesExistForTheConstructor_callsConstructorWithCorrectSignature() {
 ExampleClass ec = ReflectionHelpers.callConstructor(ExampleClass.class, ClassParameter.from(int.class, 16));
 assertThat(ec.index).named("index").isEqualTo(16);
 assertThat(ec.name).named("name").isNull();
}

代码示例来源:origin: robolectric/robolectric

@Test
@Config(minSdk = LOLLIPOP)
public void getLinkProperties() {
 Network network = shadowOf(connectivityManager).getActiveNetwork();
 LinkProperties lp = ReflectionHelpers.callConstructor(LinkProperties.class);
 shadowOf(connectivityManager).setLinkProperties(network, lp);
 assertThat(connectivityManager.getLinkProperties(network)).isEqualTo(lp);
}

相关文章