繁体   English   中英

如何将类名作为参数传递给android中的函数?

[英]How to pass class name as parameter to a function in android?

在我的android应用程序中,我有两个类,比如X和YI有另一个类Z,在那个类里面我有一个静态函数'print'。这个函数应该从两个类,X和Y调用,我想传递类名当我从两个类调用print函数时,X和Y作为函数'print'的参数。我试过的是,

public class X
 {
  public static String os="Android";
  String classname="X";
  Z.print(classname);
 }

public class Y
  {
   public static String os="IOS";
   String classname="Y";
   Z.print(classname);
  }

public class Z
  {

     public static void print(String classname)

      {

       System.out.println(classname.os);

      }
  }

但是eclipse会抛出一个错误“os无法解析或者不是一个字段”。我知道我用来传递类名的方法是错误的。任何人都可以指导我解决这个问题吗?...提前谢谢....

您可以调用类的getName方法。

YourClass.class.getName();

在你调用Z类的print方法的情况下,调用如下:

Z.print(Y.class.getName());

print方法中, classname参数是普通的Java字符串。 它没有名为os的字段。

如果要将类名和操作系统名称都传递给print方法,则需要使print取两个字符串参数:

public static void print(String classname, String os)
{
  System.out.println(classname + ", " + os);
}

并在调用它时传递两个值:

Z.print(classname, os);

您的另一个错误是您的XY类具有方法之外的代码,这是不允许的。

为什么不直接传递os作为参数?

class X
 {
  public static String os="Android";
  String classname="X";
  void print()
  {
    Z.print(os);
}
}

class Y
  {
   public static String os="IOS";
   String classname="Y";
   void print()
{
    Z.print(os);
}
}

class Z
  {

 public static void print(String x)

  {

   System.out.println(x);

  }

}

Z.print()移动到方法体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM