Java 如何对带有类的片段使用instanceof运算符

Java 如何对带有类的片段使用instanceof运算符,java,android,android-fragments,instanceof,Java,Android,Android Fragments,Instanceof,我需要检查当前显示的片段,以避免重新启动相同的片段类 要启动片段,请使用以下代码: private Class mFragmentClass; mFragmentClass = InfoFragment.class; if (null != mFragmentClass) { try { mFragment = (Fragment) mFragmentClass.newInstance(); FragmentManager fragmentManager = getS

我需要检查当前显示的片段,以避免重新启动相同的片段类

要启动片段,请使用以下代码:

private Class mFragmentClass;

mFragmentClass = InfoFragment.class;

if (null != mFragmentClass) {
  try {
     mFragment = (Fragment) mFragmentClass.newInstance();
     FragmentManager fragmentManager = getSupportFragmentManager();
     fragmentManager.beginTransaction().replace(R.id.content_navigation_menu, mFragment).commit();
  } catch (InstantiationException exception) {
     exception.printStackTrace();
  } catch (IllegalAccessException exception) {
     exception.printStackTrace();
  }
}
需要检查当前显示的片段:

if(mFragment instanceof (Fragment)mFragmentClass.newInstance())
给出的是编译时错误

[),应为,类型应为]


您可以在打开片段的活动中创建静态字符串

public static String currentFragment = "";
然后在Resume上的每个片段中,您可以像下面这样为该字符串指定片段的名称

MainActivity.currentFragment = "currentFrag";

然后,您可以随时检查它。

尝试以下方法检查仅在运行时已知的类型:

mFragmentClass.isInstance(mFragment)

java instanceof运算符用于测试对象是否为指定类型的实例。它需要一个类。可能重复:这是我所期待的。谢谢你。这是一个天才的方法!谢谢你。