我有两个班,A班和B班。
public class A {
B testB = new B();
testB.setName("test"); //**Error Syntax error on token(s), misplaced constructs
//**(same line above) Error Syntax error on "test"
}
//in a separate file
public class B {
public String name;
public void setName(String name){
this.name = name;
}
}
为什么我不能在A类的B类中访问这个函数“setName”?感谢。
答案 0 :(得分:1)
您需要将该代码放在A
的构造函数中......
public A() {
B testB = new B();
testB.setName("test");
}
...然后实例化它。
A someA = new A();
答案 1 :(得分:1)
您需要从另一个方法或构造函数中调用该函数。
public class A {
//Constructor
public A(){
B testB = new B();
testB.setName("test");
}
//Method
public void setup(){
B testB = new B();
testB.setName("test");
}
}
/*Then in a main method or some other class create an instance of A
and call the setup method.*/
A a = new A();
a.setup();
答案 2 :(得分:0)
testB.setName("test");
是一个语句,需要在代码块中。目前它位于不允许非声明性陈述的类块中。
因此将此statent移动到构造函数,方法或初始化程序块中将解决问题:
public class A {
B testB = new B(); // B can remain here
public A() {
testB.setName("test");
}
}