Java很新,所以请耐心等待。我在java类中有一个实用程序方法,它只是获取你所在的页面标题。
public class BasePageTitle{
public Page getPageTitle(){
page.title;
}
}
我正在尝试在新课程中使用它,并且不知道我做错了什么。
import com.models.pageTitle;
public String headerMeta;
public String keywords;
public class HeaderComponent{
headerMeta = "Page Title" + getPageTitle;
keywords = "Description" + getPageTitle;
}
我似乎得到的错误是“方法getPageTitle未定义”但我是 丢失,因为在我的模型类中我正在导入实用程序类并思考 我可以引用getPageTitle方法。我在这里错过了什么吗?
答案 0 :(得分:3)
getPageTitle
是一种方法,因此必须使用这样的括号激活:getPageTitle()
不是这样的:getPageTitle
getPageTitle
不是静态方法 - 你应该创建一个BasePageTitle
的实例来调用它,其中一个方法是扩展类BasePageTitle
,就像MadProgrammer一样建议headerMeta
之外宣布了keywords
和HeaderComponent
- 此代码甚至无法编译!headerMeta = "Page Title" + getPageTitle;
,以便在a:constructor,setter,static initializer或initialization block 你可能想做这样的事情:
import com.models.pageTitle;
public class HeaderComponent{
public String headerMeta;
public String keywords;
private BasePageTitle bpt = new BasePageTitle();
// this is the constructor - which is used to create instances of this class
// and (mostly) to initialize object variables
public HeaderComponent(){
headerMeta = "Page Title" + bpt.getPageTitle();
keywords = "Description" + bpt.getPageTitle();
}
}
答案 1 :(得分:0)
要让HeaderComponent
使用此方法,必须extend
来自BasePageTitle
...
public class HeaderComponent extends BasePageTitle {...
这是继承的基础。有关详细信息,请参阅Inheritance trail
答案 2 :(得分:0)
两件事:
1-该方法是实例方法,而不是简单的实用程序或辅助方法。您需要实例化BasePageTitle
。
2-你正在调用方法不正确。在java方法中,调用需要括号,即使该方法不带参数。此外,它必须在方法(如果是实例方法)或类(如果是静态)上调用,例如basePageObject.getPageTitle()
答案 3 :(得分:0)
你可以像其他答案那样扩展它(继承),或者你可以实例化一个类BasePageTitle
并获得标题,因为它是一个公共的非静态类。
但为此,您的班级BasePageTitle
需要一个字段和一个构造函数:
public class BasePageTitle{
String title;
public BasePageTitle (String title){
this.title = title;
}
public String getPageTitle(){
return this.title;
}
}
然后在你的其他课上
public class HeaderComponent{
//at some point you have to create the title
BasePageTitle page = new BasePageTitle("title here");
headerMeta = "Page Title" + page.getPageTitle();
keywords = "Description" + page.getPageTitle();
}
意见:
您的方法public Page getPageTitle()
没有做任何事情,因为没有return
。你必须写return this.title;
。
答案 4 :(得分:0)
您可以将getPageTitle方法设为静态
public static Page getPageTitle()
然后致电
BasePageTitle.getPageTitle();