0

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

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无法解析或不是字段”。我知道我用来传递类名的方法是错误的。有人可以指导我解决这个问题吗?...提前谢谢...。

4

4 回答 4

2

您可以调用类的 getName 方法。

YourClass.class.getName();

在您调用 Z 类的 print 方法时,请像这样调用:

Z.print(Y.class.getName());
于 2012-11-14T06:56:47.823 回答
0

为什么不直接传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);

  }

}
于 2012-11-14T07:41:12.213 回答
0

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

于 2012-11-14T07:45:13.630 回答
0

在您的print方法中,classname参数是一个普通的 Java 字符串。它没有一个名为os.

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

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

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

Z.print(classname, os);

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

于 2012-11-14T05:25:06.567 回答