在我的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无法解析或者不是字段”。我知道我用来传递类名的方法是错误的。任何人都可以指导我解决这个问题吗?...提前谢谢。 ......
答案 0 :(得分:2)
您可以调用类的getName方法。
YourClass.class.getName();
在您调用Z类的print方法的情况下,请按以下方式调用:
Z.print(Y.class.getName());
答案 1 :(得分:0)
在print
方法中,classname
参数是普通的Java字符串。它没有名为os
的字段。
如果要将类名和操作系统名称都传递给print
方法,则需要使print
获取两个字符串参数:
public static void print(String classname, String os)
{
System.out.println(classname + ", " + os);
}
并在调用它时传递两个值:
Z.print(classname, os);
您的另一个错误是,您的X
和Y
类的代码超出了某个方法,这是不允许的。
答案 2 :(得分: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);
}
}
答案 3 :(得分:0)
将Z.print()
移至方法正文。