我只写了一个简单的项目,它总结了两个数字。我的项目是在3个seprate文件夹中进行的:
1-Operator interface(e:\ operator)
package operator;
public interface Operator
{
int claculate(int firstNumber,int secondNumber);
}
2类加上实现运算符(e:\ operation):
package operation;
import operator.*;
public class Plus implements Operator
{
public int claculate(int firstNumber,int secondNumber)
{
return firstNumber + secondNumber;
}
}
3个主要项目(e:\ main)
package main;
import operator.*;
import java.lang.*;
public class Sum
{
public static void main(String args[])
{
int num1 = 5;
int num2 = 7;
Operator instance;
Class cls;
instnace = (Operator)cls.newInstance();
int output = instance.calculate(num1,num2);
System.out.println("your result is :" + output);
}
}
现在当我像这样编译这个3文件夹时: javac main / .java operation / .java operator / * .java 我收到此错误:无法找到符号实例 我该如何导入这三个具有依赖关系的文件夹并编译它们?
答案 0 :(得分:1)
好吧,首先你有一个拼写错误,因为你调用instnace
并且声明的变量是instance
(所以我认为这是编译错误的原因)
然后,您必须编译第一个运算符,然后编译Plus将运算符添加到类路径,最后将最后一个运算符添加到类路径中。
以这种方式添加类路径
javac -cp directory_with_clases your_java.java
但相反,我认为值得一提的是,maven会帮助你很多。
答案 1 :(得分:1)
您已定义Operator instance;
而不是Operator instnace
可能是它的错字。但它不是你需要最终调用接口方法的方式。
这样简单
import operation.*;
Operator instance = new Plus ();