我创建了一个java项目,其中包含以下类的主体。
package tfimvalidation;
public class ValidateToken {
public void display()
{
System.out.println("Yor package imprort succesfully");
}
}
这是java项目现在我已经创建了这个项目的jar文件,并将其添加到我的其他动态Web项目中。
我可以使用以下语句
访问ValidateToken类和包ValidateToken validateToken = new ValidateToken();
但我无法访问validateToken.display();
它会出现这种错误; 令牌上的语法错误"显示",此令牌后预期的标识符。
这是我使用jar第一个项目的第二个项目的代码。 import tfimvalidation.ValidateToken;
public class Main
{
ValidateToken validateToken=new ValidateToken();
validateToken.display(); //Here gives above shown error.
}
答案 0 :(得分:3)
你不能像这样在类声明中调用一个方法。您可以在类声明中声明 fields ,但方法调用(除了用于字段初始化器的调用)必须在方法或构造函数中。例如:
import tfimvalidation.ValidateToken;
public class Test {
public static void main(String[] args) {
ValidateToken token = new ValidateToken();
token.display();
}
}
答案 1 :(得分:1)
您收到编译时错误的原因是,您在token.display();
中调用class body
,而不是在方法或其他code block
内。你不能这样做。最不可能的变化是:
转到以下声明:
ValidateToken token = new ValidateToken();
token.display();
进入这样的方法,
public static void main(String[] args) {
ValidateToken token = new ValidateToken();
token.display();
}
其他选项
1)Init Block
{
ValidateToken token = new ValidateToken();
token.display();
}
2)内部构造函数
Main(){
ValidateToken token = new ValidateToken();
token.display();
}
3)静态阻止
static {
ValidateToken token = new ValidateToken();
token.display();
}
当您将main method
以外的其他语句放在需要创建新对象以便Init Block or Constructor will run
以及static block
内的语句时,它将立即被调用类加载到内存中,但我认为您希望重用Object以进行进一步处理,因此我建议您将这些行保留在main Method
答案 2 :(得分:0)
从main /任何其他方法调用您的void类型方法,而不是像声明如下字段一样调用:
public class Main
{
public static void main(String args[]) {//main is the entry point
ValidateToken validateToken=new ValidateToken();
validateToken.display();
}
}
或
public class Main
{
ValidateToken validateToken=new ValidateToken();
public void myMethod() {
validateToken.display();
}
}
或者
public class Main
{
ValidateToken validateToken;
public Main() {
validateToken=new ValidateToken();
validateToken.display();
}
}
如果它是一个说返回类型为int的方法,你可以做类似的事情
public class Main
{
ValidateToken validateToken=new ValidateToken();
int myint = validateToken.display();//then of course method name would been different
}
答案 3 :(得分:0)
你在做什么
public class Main
{
ValidateToken validateToken=new ValidateToken();
ValidateToken.display(); //Here gives above shown error.
}
你应该做什么
public class Main
{
//call this function from main
public void function(){
ValidateToken validateToken=new ValidateToken();
validateToken.display(); // here v in lowercase
}
}
首先,你要在类中调用display函数,而不是在java中不允许的Main类函数 你在jar中的方法是非静态的,所以你必须在创建它的对象后调用它。
如果你想调用display();用类名做 在你的罐子里
public static void display()
{
System.out.println("Yor package imprort succesfully");
}
在你调用jar函数的类中
ValidateToken.display();
注意:还要导入包。