在Mac上的Eclipse中导入Java类

时间:2011-11-16 19:50:37

标签: java import

我在不同的文件中有两个类(CoinFlip和Incr),我正在尝试导入Incr以在CoinFlip中使用:

package com.iRprojects.Book.Java;

import java.util.*; 
import com.iRprojects.Book.Java.*;

public class CoinFlip { 

    public static void main(String[] args) {
        int g = 5;

        System.out.println(incr(g));

    }
}   

package com.iRprojects.Book.Java;

public class Incr {
    public static int incr(int i){
        i++;
        return i;
    }
}

对于像这样的类,eclipse说找不到incr()。

如果我将其更改为:

package com.iRprojects.Book.Java;

import java.util.*; 
//import com.iRprojects.Book.Java.*;

public class CoinFlip { 

    public static void main(String[] args) {
        int g = 5;

        System.out.println(com.iRprojects.Book.Java.Incr.incr(g));

    }
}   

编译好。 有什么想法吗?

4 个答案:

答案 0 :(得分:0)

您的代码不正确...您正在尝试访问incr,就像它是CoinFlip类的本地方法一样。

实际上,它是在Incr类中定义的,因此应该像:

一样进行访问
System.out.println(new Incr().incr(g));

另外,请考虑为您的包装声明使用正确的防晒建议。

答案 1 :(得分:0)

incr()Incr的静态方法。如果未明确声明类名,则java将仅查看包含的类。由于CoinFlip未实现incr(),因此您会收到错误。

您也不需要类名的完全限定路径,Incr.incr()没问题。

答案 2 :(得分:0)

在这种情况下,你必须写:

import static com.iRprojects.Book.Java.Incr.*;

这意味着从com.iRprojects.Book.Java.Incr类中导入所有静态成员,同时考虑访问修饰符。

答案 3 :(得分:0)

使用静态导入或写入Incr.incr()