-3

我创建了一个 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 的第二个项目的代码。导入 tfimvalidation.ValidateToken;

public class Main
{
     ValidateToken validateToken=new ValidateToken();
    validateToken.display(); //Here gives above shown error.
}   
4

4 回答 4

3

你不能像这样在类声明中调用方法。您可以在类声明中声明字段,但方法调用(除了用于字段初始化器的方法调用)必须在方法或构造函数中。例如:

import tfimvalidation.ValidateToken;

public class Test {
    public static void main(String[] args) {
        ValidateToken token = new ValidateToken();
       token.display();
    }
}
于 2015-02-07T08:25:11.087 回答
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) 初始化块

{
     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,它将在 Class Loads into Memory 时立即调用,但我认为您还想重用 Object 以进行进一步处理所以我建议你把这些线放在你的main Method

于 2015-02-07T09:00:20.103 回答
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
}   
于 2015-02-07T08:24:51.087 回答
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
       }
    }   

首先,您在类内部调用显示函数,但不在 Java 中不允许的 Main 类函数内部调用第二个您在 jar 中的方法是非静态的,因此您必须在创建其对象后调用它。

如果你想调用 display(); 用类名做在你的罐子里

public static void display()
    {
        System.out.println("Yor package imprort succesfully");
    }

在你调用 jar 函数的类中

ValidateToken.display();

注意:还要导入包。

于 2015-02-07T08:32:44.680 回答